惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
雷峰网
雷峰网
GbyAI
GbyAI
Hugging Face - Blog
Hugging Face - Blog
N
Netflix TechBlog - Medium
博客园 - 聂微东
Y
Y Combinator Blog
罗磊的独立博客
博客园_首页
小众软件
小众软件
有赞技术团队
有赞技术团队
爱范儿
爱范儿
F
Fortinet All Blogs
C
Check Point Blog
Google DeepMind News
Google DeepMind News
云风的 BLOG
云风的 BLOG
Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
aimingoo的专栏
aimingoo的专栏

博客园 - 农民

苏州某知名互联网公司正在招募开发人员,有意向的请联系我 全力奔跑 直面-奋斗 关于iis中aspx页面无法访问,但是html页面可以访问的解决办法 羊群选择天敌的经典寓言 懒蚂蚁效应 《Web站点优化》读书笔记 职场升迁之--表现的心态 工作心得之---再谈“表现” IT外企那点事[转载] 我对CTO的理解 CTO要有技术魅力[转载] 工作心得之-------做一个好的项目经理很难 工作心得之-------关于“表现” 字符编码笔记:ASCII,Unicode和UTF-8(转) 如何让vs2005的网站编译成一个DLL 软件开发者面试百问 Cookie学习 App_Code,App_Data等文件夹的作用 程序员六大职业素养(转)
多系统间用户账号自动登录的解决方案
农民 · 2009-02-09 · via 博客园 - 农民

多个系统的用户表以一个字段UserId来关联。该值在所有用户表中唯一,是用户的唯一标识。在用户表中新增一个字段UserGuid,该字段里保存的是调用mssql内置函数 NEWID() 而产生的一个唯一的不重复的字符串。

每个系统中增加两个页面,文件名为:AutoLoginTo.aspx(2个传入参数,ToSiteToUrl)AutoLoginFrom.aspx(此页面有3个传入参数,分别为UserIdAuthStrToUrl)

当会员已经登录了某个系统,需要直接登录进另一个系统时,一般情况下是点击一个超链接打开新的浏览器窗口进入

但注意,此处的超连接我们不是直接链接到新系统,而是链接到本系统内的 AutoLoginTo.aspx 页面(浏览器还停留在当前系统中),这个页面的功能如下:

    首先判断当前会员是否已经在本系统成功登录,

    如果不是就直接回本系统首页,所有操作结束

    如果是则向上面提到的用户表的这个用户的相关记录(有且只有一条)的UserGuid字段写入 NEWID()

    在取得了刚写入的记录的 ID 字段值(比如:23456)和 NEWID() 值(比如:6F9619FF-8B86-D011-B42D-00C04FC964FF)后

    Response.Redirect方法将浏览器重定向到 目标系统(ToSite)的 AutoLoginFrom.aspx?UserId=23456&AuthStr=6F9619FF-8B86-D011-B42D-00C04FC964FF&ToUrl=xxxxx 页面即可

    至此,当前系统操作结束

在目标系统中,AutoLoginFrom.aspx页面接收到传入的3个参数,

    根据UserId、AuthStr这两个参数到 用户表中查找是否有匹配的记录(此处注意不要犯注入漏洞错误,不要直接在一个sql语句中判断)

    如果没有,则回到系统的登录页,提示登录,所有操作结束

    如果有匹配记录,则先将 用户表中相应的记录的 UserGuid 字段的值清空(千万注意不是删除此记录,而且此步骤要先做)

   然后为该用户执行自动登录步骤,如果符合进入系统的条件,就跳转到ToUrl指定的页面(如果没有指定ToUrl,则进入会员中心或首页即可),不符合进入条件就返回登录提示页面

    至此,所有操作结束