【问题标题】:Abandon session in ASP.NET MVC global.asax在 ASP.NET MVC global.asax 中放弃会话
【发布时间】:2018-04-27 18:32:21
【问题描述】:

我在这里进退两难。我已经通过不同的 ASP.Net MVC 5 项目实现了 SSO 登录,并且在身份和表单身份验证中一切正常。但我有一个要求。如果用户在不会自动登录之前从未进入过应用程序,则必须单击登录并订阅该应用程序。因此,对于从未进入过应用程序的用户来说,它必须看起来就像一个未登录的用户。我希望我对此很清楚。

我在应用程序和表单身份验证之间使用通用机器密钥来生成票证。

所以,我在 Global.asax 中的 Application_PostAuthenticateRequestApplication_AcquireRequestState 方法中进行了验证,以查看当前登录的用户是否以前订阅过该应用程序,如果有,则没有任何反应,他作为已登录的用户输入在用户中正常。但如果他还没有订阅它必须放弃会话。

我尝试过使用FormsAuthentication.SignOut(),但这个会破坏 cookie 并删除它的 sso 方面。而Session.Abandon() 什么也不做。所以,我的问题是如何在不删除 cookie 的情况下放弃会话或当前表单身份验证,所以如果他访问他订阅的任何其他应用程序,他不会有任何问题。

谢谢。

【问题讨论】:

    标签: .net asp.net-mvc single-sign-on forms-authentication global-asax


    【解决方案1】:

    我找到了一种方法,每次我想添加自定义验证时,我都必须更改 FormsAuthentication Cookie 的名称并验证它是否以其他名称存在,然后使用 FormsAuthentication.signOut() 并分配Current.User 是一个通用的空用户。

    【讨论】:

      猜你喜欢
      • 2016-06-22
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      相关资源
      最近更新 更多