1

我在 Sharepoint 2010 中使用基于声明的身份验证进行了自定义登录。用户身份验证工作得很好,但我的自定义注销方法却不行。我尝试了几种解决方案,但我的身份验证 cookie(联合)仍然存在。为什么?

这将不起作用:

FormsAuthentication.SignOut();

不是这个:

FederatedAuthentication.SessionAuthenticationModule.SignOut();
FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie();

这也不会:

var authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
    HttpCookie cookie = new HttpCookie(authCookie.Name);
    cookie.Expires = DateTime.Now.AddDays(-1d);
    cookie.Domain = domain;
    Response.Cookies.Add(cookie);
}

如何删除我的 FedAuth cookie?我的 cookie 不是持久的。删除我的身份验证 cookie 的唯一方法仍然是在我的浏览器中手动删除它或将其关闭。

4

1 回答 1

1

我们在使用 WIF 时遇到了一些麻烦。我不知道您的 SharePoint 实施是否使用 WIF,但如果使用,这是一种可能有帮助的替代方法:

WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule;
                string signoutUrl = (WSFederationAuthenticationModule.GetFederationPassiveSignOutUrl(authModule.Issuer, authModule.Realm, null));
                Response.Redirect(signoutUrl);
于 2013-05-17T17:07:30.770 回答