MVC中的SSO(单点登录)

use*_*283 3 asp.net-mvc-3

有人在MVC中实现了signgle登录吗?任何人都可以给我任何MVC单点登录的例子.

Dar*_*rov 8

我已经在同一父域(app1.domain.com,app2.domain.com,...)上托管的多个ASP.NET MVC应用程序之间实现了一个SSO解决方案,方法是使用Forms Authentication并设置cookie 的domain属性.所有应用程序的web.config:

<forms 
   name="ssoauth" 
   loginUrl="/login" 
   protection="All"
   timeout="120"
   requireSSL="true"
   slidingExpiration="false">
   domain="domain.com" 
/>
Run Code Online (Sandbox Code Playgroud)

当您设置cookie的域属性时,此cookie将自动由客户端浏览器发送到此域上托管的所有应用程序,并且能够自动对用户进行身份验证.

如果您想使用表单身份验证实现跨域SSO,您可以执行以下操作:

  1. 用户导航到foo.com并登录.托管的应用程序foo.com使用标准的表单身份验证,没什么特别的.
  2. 用户决定转到bar.com并单击您创建的链接.此链接可能包含一个令牌参数,该参数将包含加密的用户名.这种加密可以使用机器密钥完成,如下所示:https://bar.com?token=ABC.
  3. 托管的应用程序bar.com接收请求,因为它使用其他应用程序相同的机器密钥,它能够解密令牌并获取用户名.然后,它只需在本地发出一个身份验证cookie,然后用户自动登录即可登录用户bar.com.