MVC中的SSO(单点登录)

时间:2011-02-14 23:10:13

标签: asp.net-mvc-3

有没有人在MVC中实现单点登录?任何人都可以给我任何MVC单点登录的例子。

3 个答案:

答案 0 :(得分:8)

我通过使用表单身份验证并设置{在同一父域(app1.domain.com,app2.domain.com,...)上托管的多个ASP.NET MVC应用程序之间实现了SSO解决方案所有应用程序的web.config中cookie的{3}}属性:

<forms 
   name="ssoauth" 
   loginUrl="/login" 
   protection="All"
   timeout="120"
   requireSSL="true"
   slidingExpiration="false">
   domain="domain.com" 
/>

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

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

  1. 用户导航到foo.com并登录。foo.com上托管的应用程序使用标准的表单身份验证,没什么特别的。
  2. 用户决定转到bar.com并点击您创建的链接。此链接可能包含一个令牌参数,该参数将包含加密的用户名。这个domain使用机器密钥,看起来像这样:https://bar.com?token=ABC
  3. 托管在bar.com上的应用程序会收到请求,因为它使用encryption could be done作为另一个应用程序,它能够same machine keys并获取用户名。然后,它只需在本地发出身份验证Cookie即可在用户中签名,用户将自动在bar.com中登录。

答案 1 :(得分:0)

答案 2 :(得分:0)

请在此处查看我的回答。基本上你需要在web.config上将身份验证模式设置为windows并使用HttpContext类来检索从Active Directory获取数据的用户身份

https://stackoverflow.com/a/40938106/950944