存档

‘工作上的事儿’ 分类的存档

跨域名多站点同时登录的实现

2010年4月16日

我们的站点模式是:多个站点(每个站点有自己的独立域名)分布在不同的服务器上,但通过passport共享同一个用户数据库,并且每个站点都可以注册、登录、修改密码等。这就需要实现“跨域名多站点同时登录”。

通过比较,我们选择了iframe这种简单的实现方式,具体如下:

假设我的分站点域名分别为www.domainA.comwww.domainB.netwww.domainC.cn。我建立一个网站应用,将login.domainA.comlogin.domainB.comlogin.domainC.cn都通过A记录指向这个网站应用。这个网站具体有这么几个功能模块:

  1. 通过主机头的地址,对来源网站进行识别,加载不同的页面皮肤,包括语种。
  2. 如果来源网站已经将用户名和密码传递过来,则直接登录;否则,等待用户在本页输入用户名密码后再登录。
  3. 如果登录成功,则通过iframe将用户名密码传递给每一个需要登录的网站(这些iframe是隐藏的),实现每一个站点都顺利登录并生成各自的cookie。
  4. 返回来源网站或者指定的地址。

这种方法实现起来非常简单,不涉及什么复杂的代码或者高难的技术,而且效率也很高。

工作上的事儿 ,

我们项目的多语言支持解决方法

2010年3月30日

我的网站项目的多语言支持有两种情况,一种是同一个项目,通过语言参数来切换不同的界面(比如我的论坛、PassPort等);还有一种是完成一个项目A后,通过更换语言包,快速地新生成新的不同语言的项目A’(比如我的简单赢)。

这两种情况,都可以通过语言资源包来实现。第一种情况,在一个资源包里配置多种语言,根据语言参数来读取。第二种情况,在项目A的语言资源包的基础上,翻译出所需要的其它语言,即可。

仔细考虑后,还是放弃了有资源包的方式,因为这种方法可以实现目的,但维护性、操作性都很差。也考虑过用po/mo的方法,但没有找到详细的.net下的解决方案。

综合考量,不如自己来做,反正是提供给自己的项目使用,也不是很复杂。

因为暂时不考虑发布出去,所以就不用文件包的方法(文件包易发布、易共享,但需要编写专门的查询、编辑代码),而是用数据库来解决(不易共享,但集成度高,不需要编写额外的代码)。

建立一个表,以zh_cn为关键索引,然后加上en_us和zh_hk两个字段(其它语言以此类推)。再编写一个api函数,getword(@word [, @lan_id])。这个函数接受@word参数,然后去这个表中查询,如果有结果,则返回相应的结果,否则就返回@word本身。最后在所有的项目中涉及到语言的部分,都用这个函数来替换即可。

工作上的事儿 ,

简单路的数据结构与算法

2010年3月29日

我们将一个地址标准话5个段落,例如AABBCCDDEE。其中AA为省级(包括直辖市)、BB为市级(地级市)、CC为区级(镇、县)、DD为路级(乡、村、街道等)、EE为剩余部分(门牌号码、建筑名称等)。

每一级别,分别和上一级别构成隶属关系;每一个段落,都有一个标准名称,和若干个可用名称(别名),比如“上海市”是标准名称,“上海”、“沪”为可名称。

我们一共提炼了以下几种匹配模式:

  • 省->市->区->路
  • 省->区->路,区->市
  • 省->市->路,路->区
  • 市->区->路,市->省
  • 市->路,市->省,路->区

这样,只要输入任一个地址后,程序就按照以上模式逐一进行匹配,将匹配深度最大的结果作为标准地址返回。

工作上的事儿 , ,

准备上线saylar.net

2010年3月29日

该站点的名称尚未想好,不过因为是应用站点,所以没有一个响亮的名字应该问题不大。

saylar.net提供两种应用服务:1、短url地址;2、智能转发。

短url地址比较简单,就是将诸如http://www.xxx.com:2222/CMD_FILE_MANAGER/domains/wangsuyi.com/public_html这样的完整但冗长的url地址,通过数据库技术,一一对应为诸如http://saylar.net/JHDA8这样的短url地址。当发生页面请求时,再解析转发到原有的地址即可。

可以将之开发为两种应用,一种是页面端的,用户输入原地址,页面返回短地址,供用户复制后使用。另一种就是api应用,可以将这个api开放出来,解析输入的文字,通过正则计算将其中的url地址读取出来,再一一匹配上短地址后返回。

智能转发也是利用正则技术,提前配置好转换规则,当发生页面请求时,根据这些转换规则,返回并转发到目标地址。

工作上的事儿 , ,

真讽刺,不是吗?

2010年3月27日

按照cnnic的要求,从年后开始就在为新的站点申请网站备案。

第一次等了17天,得到回复说是“有论坛,要专项备案”。我的站点是有“论坛”这个栏目,但从上一年的12月起,就关闭了一切论坛功能,只保留了导航栏上的这个标签而已。原来负责审核的同志,是不点入查看的。

没办法,再重新来一遍吧。这次是23天,总算得到了“通过”的回复。可是这个时候,这个回复已经不起作用了。因为这个站点空间所在的接入商,已经被逼着将所有的服务器迁离了国内,到了美国去了。就这样,我也享受到了境外服务器的待遇。真讽刺,不是吗?

工作上的事儿, 心情上的事儿 ,