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

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
博客园 - 聂微东
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
Apple Machine Learning Research
Apple Machine Learning Research
H
Hackread – Cybersecurity News, Data Breaches, AI and More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
O
OpenAI News
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
有赞技术团队
有赞技术团队
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
MyScale Blog
MyScale Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Hacker News: Ask HN
Hacker News: Ask HN
Help Net Security
Help Net Security
爱范儿
爱范儿
W
WeLiveSecurity
V2EX - 技术
V2EX - 技术
Forbes - Security
Forbes - Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
SecWiki News
SecWiki News
A
About on SuperTechFans
Cloudbric
Cloudbric
N
Netflix TechBlog - Medium
博客园 - 司徒正美
S
Security @ Cisco Blogs
Martin Fowler
Martin Fowler
Schneier on Security
Schneier on Security
I
InfoQ
Engineering at Meta
Engineering at Meta
Google Online Security Blog
Google Online Security Blog
T
Troy Hunt's Blog
Latest news
Latest news
N
News and Events Feed by Topic
Security Archives - TechRepublic
Security Archives - TechRepublic
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
B
Blog
L
LINUX DO - 最新话题
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
V2EX
J
Java Code Geeks
N
News | PayPal Newsroom
T
Tor Project blog
The GitHub Blog
The GitHub Blog

博客园 - 赣江源

StreamInsight参考示例 Microsoft StreamInsight简介 GridView中的DataFormatString失效解决办法 - 赣江源 - 博客园 按照时间点还原数据库(SQL Server) 如何显示在线用户? ASP.NET中每个页面在Load之前调用公用函数 在服务器端提取ASP.NET控件输出的HTML 如何处理在IE7关闭时不出现选项卡提示 使用JavaScript控制UpdatePanel的更新 获取GridView单元格值的通用函数 如何在GridView将数字显示成金额格式或自定义格式? ASP.NET 2.0中使用XSLT的变化 在GridView表头显示排序方向 利用AJAX实现DropDownList与GridView做实时更新 输出时清除GridView的Style ASP.NET实现打印的方法小结 提高ASP.NET性能的一点方法 asp.net的一些小技巧 route命令详解
网站单点登录的实现思路
赣江源 · 2008-04-09 · via 博客园 - 赣江源

当我们开发了不同的Web应用系统后,如果一个用户同时要使用多个Web应用系统,但是每个应用系统都需要输入自己的账号和密码,这对于用户来说太麻烦。为了方便用户使用,就需要做单点登录,只要登陆一个Web系统后,跳转到别的Web系统时不再需要输入账号和密码;但是为了考虑到系统的安全性,这样设计单点登录功能时需要考虑安全和易用性的兼顾。

下面的实现方式是通过SQL-Server数据库来实现,假如有两个Web系统,WebA和WebB,首先在数据库中设计一个数据表,用来存储登录的用户信息,这个数据需要两个系统都可以对其操作的,这个数据表应包含以下字段信息:
GUID:由NewId()生成,格式为:【504B1790-E93A-4445-B262-E73A113BF336】;
UserId:WebA或WebB的账号,当然WebA与WebB可以用相同的账号,或者是通过用户影射的方式来取;
TimeOut:过期时间,假设这个时间为生成该记录的时间+2分钟。也就是从WebA到WebB的过程,时间过期后这条记录无效。

接下来就是实现的步骤:
1、当WebA链接转向WebB时向数据库写入一条记录,例如:5ED095B8-350D-42C3-953B-9C53DED54AFD,user1,20080402165823
2、WebA 把生成的GUID传递给 WebB
3、WebB得到GUID后,从数据库表取回登陆用户信息,并判断现在时间没有大于20080402165823;
4、如果找不到,显示错误信息并拒绝登录,如果找到,直接登录WebB系统,并同时删除该条GUID信息;
在这个过程中,过期时间设置的越长越不安全,但是太短了又容易造成登录失败,所以需要根据具体情况来设定。

这就是一个很简单的实现方式,如果有更好的方式,请提出一起学习研究。