我现在想实现如下功能,就是“让用户单一登录(single sign-in),只须输入一次密码就可以同时使用不同网站的服务”。但我不想使用微软Passport authentication services,我该如何做呢?
希望有这方面经验的朋友告诉我,最好能有详细地实现说明或代码什么的,万分感谢!我们做了几个Web Site在服务器上,现在想让用户在其中一个网站登陆,访问我们其他网站就不需要再次登陆就可获取服务,如何对用户进行身份验证,会话信息如何在另外一个网站同样有效?
希望有这方面经验的朋友告诉我,最好能有详细地实现说明或代码什么的,万分感谢!我们做了几个Web Site在服务器上,现在想让用户在其中一个网站登陆,访问我们其他网站就不需要再次登陆就可获取服务,如何对用户进行身份验证,会话信息如何在另外一个网站同样有效?
http://www.15seconds.com/issue/971108.htm
具体流程
1。先做WebServices
class A
{
///用户登陆,User是自己的结构,也可以直接用用户名、密码
[webMethod(),EnableSession(true)]
public bool Login(User user);
///这里就使用Session进行验证
[webMethod(),EnableSession(true)]
public bool ValidLogin( ); }///
在web端就可以用javascript,asp.net来调用webservices进行验证,以及其他处理不知道我的方法能不能给你解决问题呢??
如何取得客户端的Session值呢?
岂不是每个页面都得调用WebServices来验证了?
我登陆了这个网站,使用WebServices验证,打开其他网站也用这个WebService进行身份验证,Session值不会变么?
用Cookie不安全,而且如果浏览器不支持,或者用户屏蔽了cookie,用户验证就始终不能通过了~~
设定相同的
<machineKey
validationKey= "C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
decryptionKey= "8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
validation="SHA1">
</machineKey>
在打开新窗口的时候传递值,每个网站自动登录,万无一失