我已使用基于声明的身份验证配置了Intranet,并在SP 2010中使用基于表单的身份验证扩展了Internet站点
所有设置和工作除了退出...
我有一个loginstatus控件,我在loginin模板中放置了一个linkbutton。 当我点击按钮退出时,我使用了:
Session.Abandon();
Response.Cookies.Clear();
FormsAuthentication.SignOut();
自定义重定向。 〜然而,当我被重定向回我的主页时,系统仍然说我已登录并在网站上浏览。我怎么强行退出?
答案 0 :(得分:2)
See this post by Sanjay Bhagia
loginStatus.LoggingOut += new LoginCancelEventHandler(loginStatus_LoggingOut);
在注销事件中,我使用此代码注销用户。
FederatedAuthentication.SessionAuthenticationModule.SignOut();
//WSFederationAuthenticationModule.FederatedSignOut();
WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule;
SPUtility.Redirect(WSFederationAuthenticationModule.GetFederationPassiveSignOutUrl(authModule.Issuer, authModule.Realm, null), SPRedirectFlags.Default, HttpContext.Current);
因为使用Claims,用户不再使用FormsAuthentication进行身份验证,而是使用联合身份验证进行身份验证,因此我们需要从联盟注销此用户。这段代码对我有用!