社区
C#
帖子详情
C#实现单点登录难不难
heyangbin
2010-10-24 02:28:12
现在有个系统,出于安全考虑,客户要求一定要采用单点登录,我想问一下C#实现单点登录难不难,有无现成的开源框架或者代码,虽然剩下分数不多,100分奖赏。
...全文
1418
28
打赏
收藏
C#实现单点登录难不难
现在有个系统,出于安全考虑,客户要求一定要采用单点登录,我想问一下C#实现单点登录难不难,有无现成的开源框架或者代码,虽然剩下分数不多,100分奖赏。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yubin0319
2012-10-22
打赏
举报
回复
sp1234说的不错,我给你提供一种方法,用户首次登录,服务器分配一个唯一的标识给用户记录并存入数据库,服务器写个作业控制下,每隔60秒删除超时的用户登录记录,用户在访问页面时用js把这个标识每隔60秒发送给服务器,服务器剩余时间加60秒。这样可以防止用户不正常关闭之后造成的锁号问题。程序设计难点:1.如何分配唯一的标识 2.多个页面js一起发送给页面如何做到60秒内只发送一个。 解决这两个问题,你就实现咯。
如果是多个站点,无非就是数据库再复杂点,原理还是这样的原理。
希望对你有用~~~
dazix
2012-09-01
打赏
举报
回复
看看看阿卡看
asdfI
2012-03-10
打赏
举报
回复
虽然是为了易用但还是得考虑安全性。。。
asdfI
2011-08-22
打赏
举报
回复
[Quote=引用 16 楼 yzxdc 的回复:]
所谓的单点登陆是服务端的事情吧,也就是说除了通常的用户名密码登陆外,服务端还支持一个sessionID登陆的方式,然后客户端要做的就是把登陆获得的sessionID保存在一个跨进程可以访问的地方即可
[/Quote]
sessionID不是服务器跟据每次登录的自动分配的么
chinesegirl_007
2011-06-13
打赏
举报
回复
很不错
机器人
2010-10-25
打赏
举报
回复
就一个应用来说,不算是单点登录。
多个应用,利用统一的登录界面,统一的用户ID,才能算是单点登录。
主流技术:MS的Passport 现在叫 windowslive
还有开源的OpenID
gohappy2008
2010-10-25
打赏
举报
回复
关注正解!!!
deyygywxf
2010-10-25
打赏
举报
回复
严格地说,这不叫单点登录。单点登录是指允许多个应用程序相互共享登录信息(而不用多次出现登录界面)。而你的需求只能叫做限制同一地点登录。
不过这个地点是何意义,其实做大程序的人需要先写文档说明什么是“同一地点”概念,然后才能实现。
随便说一种方式:
对于你只有一个客户端应用程序的网络系统,那么就可以让应用程序登录时向服务器注册一个随机产生的编号,然后服务器把此用户最后使用的编号(比如叫做 PassportID)写入用户信息。当用户再次登录时,如果此编号已经分配了,既不是默认值0,那么就说明正在其它应用程序会话上登录着,还没有注销。
当然配套地就需要让应用程序结束时可以自动去把用户的这个信息改为0,或者用一个定时的守护程序去判断用户应用程序有没有掉线,如果离线了则帮助把这个信息改为0。
deyygywxf
2010-10-25
打赏
举报
回复
如果主域名相同,采用基于表单验证的Cookie就可以了
shbz1986
2010-10-25
打赏
举报
回复
单点登录到底是什么,等待高手指点
porschev
2010-10-25
打赏
举报
回复
看看。。。。
最后一只恐龙
2010-10-25
打赏
举报
回复
单点登录解决的不是安全性问题,而是易用性的问题,也就是在不同程序间切换时,不必在重新输入用户名密码。
(1)对于C/S结构程序,实现的方法虽然比较多,但没有很简单的方法。一个最简单的是改造Main函数,让其接受参数,如果没有参数,就弹出登录对话框,如果输入了参数,而且恰好是用户名密码,验证通过后就跳过弹出登录对话框的代码,直接进入主程序。一个程序切换到另一个程序时,通过参数传送完成。
(2)对于B/S结构程序,实现起来比较简单,因为页面可以从URL传送参数,调用另一个应用程序时直接参数形式传进去判断是否还需要登录就可以了。但需要注意两点:(i)密码必须加密,可以使用DES之类的,.net有现成的类。(ii)要防止其它用户直接把URL从地址栏复制下来,拷贝到别的地方,这样以后就不知道密码也能登录别人的系统了。可以加上调用时间,时间也加密,接收端判断如果这个URL的调用是20s(这么长时间足够了)前的,就直接失效。
yzxdc
2010-10-25
打赏
举报
回复
所谓的单点登陆是服务端的事情吧,也就是说除了通常的用户名密码登陆外,服务端还支持一个sessionID登陆的方式,然后客户端要做的就是把登陆获得的sessionID保存在一个跨进程可以访问的地方即可
matezy
2010-10-25
打赏
举报
回复
留个记号,学到再返回来看
yasha99
2010-10-25
打赏
举报
回复
呵呵 不错
aofengdaxia
2010-10-24
打赏
举报
回复
可以理解成一次登录多站点(多程序)使用不?
我以前做过类似的。我们叫做一站通行证。我使用了一个口令牌,登录的时候,生成一个随机数值。然后每个程序需要登录的时候,只需要把这串字符配合用户ID或者用户名传入后台进行验证即可。
int64
2010-10-24
打赏
举报
回复
单点登录:就是把多个有登录的互不相干的系统放在一起登录,一次登录解决所有系统登录问题。
laj0600310219
2010-10-24
打赏
举报
回复
你说的单点登录是指什么意思了?是不是一台计算机上,只能运行一个你的程序的实例?
以专业开发人员为伍
2010-10-24
打赏
举报
回复
使用PassportID是我能想出的“底线”,只要这样才有一点点灵活性可言,而用定性的一个bool值是无法处理稍微复杂一点的需求变动的。
以专业开发人员为伍
2010-10-24
打赏
举报
回复
实际的大的、有一段历史的、集成的软件系统,同一用户绝非同一时刻只绑定到一个应用程序会话上。这个“地点”概念要根据业务来仔细设计,将来也肯定需要灵活地调整。
加载更多回复(6)
单点登录
的三种
实现
方式
单点登录
SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。
单点登录
在大型网站里使用得非常频繁,例如像...
vue
实现
单点登录
的N种方式
最近项目停工了,RageFrame的学习暂时告一段落,这一篇给大家分享下有关
单点登录
的相关知识,并提供一些demo给大家参考,希望对想了解的朋友有一些帮助。 话不多说,先上原理(借鉴地址:...
OAuth2.0
实现
单点登录
的原理
单点登录
,英文是 Single Sign On,缩写为 SSO。多个站点(192.168.1.20X)共用一台认证授权服务器(192.168.1.110,用户数据库和认证授权模块共用)。为了直观的理解 OAuth2.0 原理流程,我们假设这样一个生活场景:(1)...
IdentityServer4简单
实现
单点登录
SingleLogin
请求网站A需要登录,登录成功之后,访问网站C就不需要登录。 流程 开发步骤 1、IdentityServer 服务端,统一授权 1、添加Config类,用来配置I4 两个方面 【哪些资源需要保护GetIdentityResources()】 ...
面试官:说出
单点登录
的三种
实现
方式!
你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起精进!编辑:业余草cnblogs.com/yonghengzh/p/13712729.ht...
C#
110,537
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章