asp.net-mvc-3 - MVC 中的 SSO(单点登录)

标签 asp.net-mvc-3

有没有人在 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,您可以执行以下操作:

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

关于asp.net-mvc-3 - MVC 中的 SSO(单点登录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4998394/

相关文章:

c# - jQuery AJAX 的 ASP.Net MVC 路由问题

asp.net-mvc-3 - 如何重定向到 URL?

asp.net-mvc-3 - MVC3 和 KnockoutJS DRYly

asp.net-mvc - 使用 ASP.NET MVC3 进行客户端模型级或表单级验证

c# - 如何在 MVC 3 中的隐藏对话框中提交字段

asp.net-mvc - TryUpdateModel 与强类型方法参数

asp.net-mvc - 如何让 MVC POST 返回上一页?

javascript - 将 View 中的 javascript 数据发送到 mvc 中的函数

c# - ASP.NET MVC3 : How to return raw html to view?

asp.net - 使用 MvcBuildViews=true 构建 Razor 失败