【发布时间】:2014-03-06 18:55:35
【问题描述】:
我的 ASP.NET MVC 4 应用程序受到 SSO (OAM) 的保护,其中运行在 IIS 上的 ISAPI 过滤器。当收到对我的应用程序的请求时,它会被 ISAPI 过滤器拦截并重定向到 SSO。用户必须在 SSO 登录,然后才能返回到我的应用程序。
经过身份验证的用户的用户名(通过 SSO)在 HTTP 请求标头中与我的应用程序共享。
Request.Headers["username"]
我想要实现的是- 在 SSO 身份验证之后,在我的应用程序中将 FormsAuthentication 设置为 username = Request.Headers["username"]。这样 SSO 对我的应用程序保持透明,并且用户身份在 HttpContext 对象中可用,另外,我(开发人员)可以有效地为特定角色使用 Authorize 属性。
为了实现这一点-我连接到Session_Start(),读取Request.Headers["username"],设置FormsAuthentication cookie。我得到了这个 SSO 用户 Forms-Authenticated 用于我的应用程序。
但我的问题是当我注销 (FormsAuthentication.Signout) 时,我将其重定向到应用程序内的另一个页面,这会触发一个新的 Session(发生这种情况时我可以看到 Session_Start 触发)
我在做正确的事吗 - SSO 之后的 FormsAuthentication?如果没有,为什么不呢?如何让我的应用程序知道 SSO 身份验证的用户?
【问题讨论】:
标签: c# asp.net-mvc-4 authentication forms-authentication