日期:2014-05-17  浏览次数:20511 次

求一个ASP.NET单点登录的程序
本人诚心望给大神帮助能给你一个,ASP.NET 单点登录的程序。本人刚开始学ASP.NET,最近有一个项目要求加上单点登录的功能。希望各位能多多帮助。单点登录的大致思路本人略懂,但是一下细节上的配置不会,望在源码中能有良好的注释,最好能有开发的.txt文档。能保住在下学习。
    我理解的开发思路
用户点击登录进入ASP.net httphandler模块
1)判断用户是否存在
2)判断用户名密码是否一致(区分大小写)
3)判断用户状态 是否处于登录状态。
    分为两种 1.强制上一个用户退出(想不出怎么解决) 2.提示用户 该账户已登录
4)在用户退出时需要将在服务器内存中保存的用户信息删掉(不管是session、apliaction或者其他凭证)
关于配置Web.config(个人觉得配置问题)
1.配置Session(或者其他的过期时间)项目将来会有很多用户要查询并访问
2.配置HttpHandler

以上是能想到的大致思路
------解决方案--------------------
第一种方式呢,你可以用ASP.NET提供的身份认证方式。具体的你可以看一下system.web/authentication配置节。推荐使用Forms认证。
第二种方式是我自己比较喜欢的方式:利用IHttpModule及system.web/httpModules配置节+Cookie(Session也可以)。
------解决方案--------------------
单点登录实现的方式有好多种

个人觉得实现单点登录最大的难题就是解决跨域的兼容性以及安全性
LZ可以看看京东的单点登录,他的实现并不是很麻烦,也是比较容易模仿的,
我照着这片文章实现过自己的单点登录,希望对LZ有用
京东SSO单点登陆实现分析 
------解决方案--------------------
上次的回复,希望对你有帮助
------解决方案--------------------
如果你是新手,B/S上实现单点登陆有点复杂,不过对你掌握ASP.NET很有帮助,你可以试试,我可以提供一个比较简单的单点登陆思路给你。

一、建一个ONLINE表,字段:ID,IP,USERNAME,KEY,LASTTIME
二、用户登陆后产生一个KEY并记录ONLINE,并且之后的每一步操作必须都更新LASTTIME,中间时间相差20分钟就要求重新登陆等,这些功能可以自己扩展。
三、踢人就是删除ONLINE里的行。

升级扩展:使用内存记录,日志结合,异步更新ONLINE等,这些属于高级的了,完成这些,即可实现基本无延时处理,百万数据内不成问题,超过百万估计还需要再更进一步。