跨任意语言实现同步登录的方法
更新时间:2007年01月05日 00:00:00 作者:
关键字:跨平台登录 共享session asp php .net jsp
做系统整合的时候常常会面对不同系统的同步登陆问题,也成为单点登陆SSO
SSO有很多商业产品,部署安装都相当的繁琐。
这里我说一个非常简单的方法实现同步登陆
我要做的是asp.net和asp的,一下方法适用于任意语言的同步登陆,如php jsp等
如,我在asp.net中登陆,会获得一个session.sessionId的随机数值,这个值一般情况下是不会重复的
在用户数据库里新建一个aspsession的字段,用户登陆的时候,首先获得sessionId,然后清空用户数据库中所有aspsession=sessionId的aspsession的内容
update [user] set aspsession="" where aspsession= @sessionId
然后更新sessionId到当前登陆用户的aspsession字段中
update [user] set aspsession = @sessionId where id=@登陆用户的ID
这样就保证了sessionId的唯一性
完成登陆
系统切换操作
如要从asp.net系统切换到asp论坛,在asp.net系统中有bbs的超链接。http://onewww.net/bbs 修改代码为如下http://onewww.net/bbs/login.asp?sn=<%session.sessionID%>这样就把sessionId传递给了asp系统的登陆页面
asp登陆页面要完成的工作是截获sn,然后到asp.net的user数据库以aspsession=sn查询出username或者userid,最后在asp论坛中依这个username完成登陆。
我是完成了一个asp.net系统和动网论坛的登陆
如果有别的方法欢迎讨论
做系统整合的时候常常会面对不同系统的同步登陆问题,也成为单点登陆SSO
SSO有很多商业产品,部署安装都相当的繁琐。
这里我说一个非常简单的方法实现同步登陆
我要做的是asp.net和asp的,一下方法适用于任意语言的同步登陆,如php jsp等
如,我在asp.net中登陆,会获得一个session.sessionId的随机数值,这个值一般情况下是不会重复的
在用户数据库里新建一个aspsession的字段,用户登陆的时候,首先获得sessionId,然后清空用户数据库中所有aspsession=sessionId的aspsession的内容
update [user] set aspsession="" where aspsession= @sessionId
然后更新sessionId到当前登陆用户的aspsession字段中
update [user] set aspsession = @sessionId where id=@登陆用户的ID
这样就保证了sessionId的唯一性
完成登陆
系统切换操作
如要从asp.net系统切换到asp论坛,在asp.net系统中有bbs的超链接。http://onewww.net/bbs 修改代码为如下http://onewww.net/bbs/login.asp?sn=<%session.sessionID%>这样就把sessionId传递给了asp系统的登陆页面
asp登陆页面要完成的工作是截获sn,然后到asp.net的user数据库以aspsession=sn查询出username或者userid,最后在asp论坛中依这个username完成登陆。
我是完成了一个asp.net系统和动网论坛的登陆
如果有别的方法欢迎讨论
最新评论