【发布时间】:2018-04-27 18:32:21
【问题描述】:
我在这里进退两难。我已经通过不同的 ASP.Net MVC 5 项目实现了 SSO 登录,并且在身份和表单身份验证中一切正常。但我有一个要求。如果用户在不会自动登录之前从未进入过应用程序,则必须单击登录并订阅该应用程序。因此,对于从未进入过应用程序的用户来说,它必须看起来就像一个未登录的用户。我希望我对此很清楚。
我在应用程序和表单身份验证之间使用通用机器密钥来生成票证。
所以,我在 Global.asax 中的 Application_PostAuthenticateRequest 和 Application_AcquireRequestState 方法中进行了验证,以查看当前登录的用户是否以前订阅过该应用程序,如果有,则没有任何反应,他作为已登录的用户输入在用户中正常。但如果他还没有订阅它必须放弃会话。
我尝试过使用FormsAuthentication.SignOut(),但这个会破坏 cookie 并删除它的 sso 方面。而Session.Abandon() 什么也不做。所以,我的问题是如何在不删除 cookie 的情况下放弃会话或当前表单身份验证,所以如果他访问他订阅的任何其他应用程序,他不会有任何问题。
谢谢。
【问题讨论】:
标签: .net asp.net-mvc single-sign-on forms-authentication global-asax