我在这里陷入两难境地。我已经通过不同的ASP.Net MVC 5项目实现了SSO登录,一切都可以正常使用身份和表单身份验证。但我有一个要求。如果用户在他不会自动登录之前从未输入应用程序,则必须单击登录并订阅该应用程序。因此,对于从未进入过应用程序的用户来说,它必须看起来就像一个没有登录的用户。我希望我能清楚这一点。
我在应用和表单身份验证之间使用通用计算机密钥来生成故障单。
所以,我在方法Application_PostAuthenticateRequest
和Application_AcquireRequestState
中在Global.asax中进行验证,以查看当前登录用户是否先前已订阅该应用程序,如果有,则没有任何反应,他通常以登录用户身份登录。但如果他没有订阅,它必须放弃会话。
我尝试使用FormsAuthentication.SignOut()
,但是这个会破坏cookie并删除它的sso方面。并Session.Abandon()
无所作为。所以,我的问题是如何在不删除cookie的情况下放弃会话或当前的formauthentication,因此如果他访问他订阅的任何其他应用程序,他就不会有任何问题。
谢谢。
答案 0 :(得分:0)
我找到了一种方法,我不得不更改FormsAuthentication Cookie的名称,并在每次要添加自定义验证时验证它是否与其他名称一起存在,然后使用FormsAuthentication.signOut()并进行asigning Current.User是一个普通的空用户。