有没有人在 MVC 中实现单点登录?谁能给我任何关于 MVC 中单点登录的示例。
最佳答案
通过使用表单例份验证并设置 domain,我已经在托管在同一父域(app1.domain.com、app2.domain.com、...)上的多个 ASP.NET MVC 应用程序之间实现了 SSO 解决方案。所有应用程序的 web.config 中 cookie 的属性:
<forms
name="ssoauth"
loginUrl="/login"
protection="All"
timeout="120"
requireSSL="true"
slidingExpiration="false">
domain="domain.com"
/>
当您设置 cookie 的域属性时,该 cookie 将由客户端浏览器自动发送到该域上托管的所有应用程序,并能够自动对用户进行身份验证。
如果您想使用表单例份验证实现跨域 SSO,您可以执行以下操作:
- 用户导航到
foo.com
并登录。托管在foo.com
上的应用程序使用标准表单例份验证,没什么特别的。 - 用户决定访问
bar.com
并点击您创建的链接。此链接可能包含一个 token 参数,该参数将包含加密的用户名。这个encryption could be done使用机器键,看起来像这样:https://bar.com?token=ABC
。 - 托管在
bar.com
上的应用程序接收到请求,因为它使用 same machine keys作为其他应用程序,它能够 decrypting the token并获取用户名。然后它通过在本地发出一个身份验证 cookie 来简单地登录用户,并且用户会自动登录bar.com
。
关于asp.net-mvc-3 - MVC 中的 SSO(单点登录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4998394/