在SP2010中使用表单身份验证注销

时间:2010-09-13 16:57:41

标签: forms-authentication sharepoint-2010

我已使用基于声明的身份验证配置了Intranet,并在SP 2010中使用基于表单的身份验证扩展了Internet站点

所有设置和工作除了退出...

我有一个loginstatus控件,我在loginin模板中放置了一个linkbutton。 当我点击按钮退出时,我使用了:

 Session.Abandon();
        Response.Cookies.Clear();
        FormsAuthentication.SignOut();

自定义重定向。 〜然而,当我被重定向回我的主页时,系统仍然说我已登录并在网站上浏览。我怎么强行退出?

1 个答案:

答案 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进行身份验证,而是使用联合身份验证进行身份验证,因此我们需要从联盟注销此用户。这段代码对我有用!