从BS到CS的单点登录
怎么样从BS将登录的用户凭证传给CS程序来实现单点登录
[解决办法]
单点登录的原理应该是 cookie的跨域性~~ 主要是解决跨域的问题~~ CS的话 貌似挺难的
[解决办法]
有难度。。
只能用非主流方法也不知道可不可行。
登陆之后用文件传输密码帐号 容易丢失。。。
或者通讯?
[解决办法]
webService或WCF
[解决办法]
你的单点登录是什么意思呢?
是一个用户上线了,另一个人用这个账号登录的时候是不是就提示该用户已经在线呢?还是说直接把登录这个用户挤下去呢?
我这里倒是有一个方法:
思路大概是这样的,就是一个用户登录了,将用户信息写入SESSION 中,然后在数据库中写一个存储过程,让用户的登录时间和系统时间做差,如果时间小于2分钟(并不是就这一次在判断,自从用户登录的时候起,页面其实一直在刷新,也就说,只要用户在线,系统就会一直判断登录时间和系统时间的差值),登录的时候跳转到提示该用户已经在线的页面,请两分钟之后再试
[解决办法]
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
[解决办法]
5楼,人家说的单点登录是这样,比如你在你的软件QQ上登录了,打开WEBQQ的时候就不需登录了,另外再理解就是加入某天网易和新浪合并了,但是两个网站都还在,你只需要登录了网易,那么到新浪也不需要登录了
[解决办法]
你这种我也听说过,以前面试听别人说的,好像微软有中单点登录的实现方法
[解决办法]
一般都是CS登陆了,BS就不用登陆,你怎么反过来BS登陆了,CS不用登陆。。。。
[解决办法]
或者你可以在BS登陆后,服务端记录访问电脑的信息,然后CS登陆后将本机信息一样采集了去服务端验证,如果一致,就认为是登陆过了,这样有比较大的安全隐患,不知道可不可以获取cookie的md5,如果BS,CS都能获取的话,还能通过MD5验证
[解决办法]
对于无状态的B/S 想解决这个问题 B/S得模拟有状态才行吧,这样貌似开销有点大