从BS到CS的单点登录

yjicdgv 2011-04-08 11:14:32
怎么样从BS将登录的用户凭证传给CS程序来实现单点登录
...全文
825 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程微思 2013-04-22
  • 打赏
  • 举报
回复
对啊,有没有大神出来啊,从CS到BS实现单点登录,求源码解析啊,就类似于阿里和淘宝、QQ和QQ空间一样的关系啊
shuangerjiang2009 2011-04-10
  • 打赏
  • 举报
回复
对于无状态的B/S 想解决这个问题 B/S得模拟有状态才行吧,这样貌似开销有点大
  • 打赏
  • 举报
回复
或者你可以在BS登陆后,服务端记录访问电脑的信息,然后CS登陆后将本机信息一样采集了去服务端验证,如果一致,就认为是登陆过了,这样有比较大的安全隐患,不知道可不可以获取cookie的md5,如果BS,CS都能获取的话,还能通过MD5验证
  • 打赏
  • 举报
回复
一般都是CS登陆了,BS就不用登陆,你怎么反过来BS登陆了,CS不用登陆。。。。
yjicdgv 2011-04-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 tianxiezuo 的回复:]
你的单点登录是什么意思呢?
是一个用户上线了,另一个人用这个账号登录的时候是不是就提示该用户已经在线呢?还是说直接把登录这个用户挤下去呢?
我这里倒是有一个方法:
思路大概是这样的,就是一个用户登录了,将用户信息写入SESSION 中,然后在数据库中写一个存储过程,让用户的登录时间和系统时间做差,如果时间小于2分钟(并不是就这一次在判断,自从用户登录的时候起,页面其实一直在刷新,也就说,只要……
[/Quote]
我想实现的是在ASP.NET网站上登录后,运行CS端的管理工具时不需要再重新登录。
是从BS到CS的单点登录,而不是BS到BS的单点登录。
浮尘1213 2011-04-09
  • 打赏
  • 举报
回复
你这种我也听说过,以前面试听别人说的,好像微软有中单点登录的实现方法[Quote=引用 8 楼 swde125 的回复:]
5楼,人家说的单点登录是这样,比如你在你的软件QQ上登录了,打开WEBQQ的时候就不需登录了,另外再理解就是加入某天网易和新浪合并了,但是两个网站都还在,你只需要登录了网易,那么到新浪也不需要登录了
[/Quote]
swde125 2011-04-09
  • 打赏
  • 举报
回复
5楼,人家说的单点登录是这样,比如你在你的软件QQ上登录了,打开WEBQQ的时候就不需登录了,另外再理解就是加入某天网易和新浪合并了,但是两个网站都还在,你只需要登录了网易,那么到新浪也不需要登录了
浮尘1213 2011-04-09
  • 打赏
  • 举报
回复

Create procedure UserIsonLine
(
@OperatorName varchar(10),
@IsOnLine int out
)
as
declare @busy int
declare @State int
begin
set nocount on
begin tran
select @busy = case when abs(datediff(second,LoginTime,getdate()))<120 then 1 else 0 end,
@State = isnull(IsOnline,0)
from t_Operator with(tablockx) where OperatorName=@OperatorName

if (@@error <> 0) goto error1
if (@busy = 1) and (@State = 1)
set @IsOnLine = 1
else
begin
set @IsOnLine = 0
update t_Operator with(tablockx) set LoginTime = getdate(),IsOnLine = 1 where OperatorName=@OperatorName
if (@@error <> 0) goto error1
end
commit tran
set nocount off
return 0
end

error1:
begin
print '出错0001'
set nocount off
rollback tran
end
浮尘1213 2011-04-09
  • 打赏
  • 举报
回复
你的单点登录是什么意思呢?
是一个用户上线了,另一个人用这个账号登录的时候是不是就提示该用户已经在线呢?还是说直接把登录这个用户挤下去呢?
我这里倒是有一个方法:
思路大概是这样的,就是一个用户登录了,将用户信息写入SESSION 中,然后在数据库中写一个存储过程,让用户的登录时间和系统时间做差,如果时间小于2分钟(并不是就这一次在判断,自从用户登录的时候起,页面其实一直在刷新,也就说,只要用户在线,系统就会一直判断登录时间和系统时间的差值),登录的时候跳转到提示该用户已经在线的页面,请两分钟之后再试
hongdi 2011-04-09
  • 打赏
  • 举报
回复
webService或WCF
yjicdgv 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wlf535944903 的回复:]
单点登录的原理应该是 cookie的跨域性~~ 主要是解决跨域的问题~~ CS的话 貌似挺难的
[/Quote]
是呀 高手高手高高手快出来吧!!!
子夜__ 2011-04-08
  • 打赏
  • 举报
回复
有难度。。
只能用非主流方法也不知道可不可行。

登陆之后用文件传输密码帐号 容易丢失。。。

或者通讯?
wlf535944903 2011-04-08
  • 打赏
  • 举报
回复
单点登录的原理应该是 cookie的跨域性~~ 主要是解决跨域的问题~~ CS的话 貌似挺难的

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧