2

是否有清除匿名 cookie 的 API?

4

4 回答 4

4

是的!

 System.Web.Security.AnonymousIdentificationModule.ClearAnonymousIdentifier()

请参阅这篇有用的文章:(迁移匿名用户设置)

也是迁移匿名配置文件stackoverflow 问题的最佳方法。

于 2009-10-24T22:49:46.440 回答
0

最初,我遇到了“AnonymousIdentificationModule.ClearAnonymousIdentifier()”的问题。错误是“禁用该功能或​​用户匿名时不支持 ClearAnonymousIdentifier。”

仅当用户 itsef 是匿名用户时尝试清除匿名标识符时才会出现此问题。表示匿名用户无法清除其他匿名用户的 cookie。

为此,请在用户通过身份验证(登录用户)的情况下放置代码,例如:

if(Request.IsAuthenticated)
{
   AnonymousIdentificationModule.ClearAnonymousIdentifier();
}

这会成功的。

于 2011-12-29T06:52:45.610 回答
0

我正在使用 MVC4,在我的场景中,我希望能够删除匿名 cookie,以便即使用户从未登录也会自动生成一个新的 cookie。(这样测试人员不必每次都删除他们的 cookie他们想以新用户身份返回站点的时间。) AnonymousIdentificationModule.ClearAnonymousIdentifier 在这种情况下不起作用,因为您只能在用户通过身份验证时调用它。(似乎该函数的可选参数会很好。)因此,或者您必须使用过去的到期日期重写匿名 cookie。我通过创建一个基本的操作方法来做到这一点,匿名用户可以随时访问并以新的匿名用户身份重新启动:

    [HttpGet]
    [AllowAnonymous]
    public ActionResult ClearMyCookie()
    {
        HttpCookie cookie = new HttpCookie(".ASPXANONYMOUS");
        cookie.Expires = DateTime.Now.AddDays(-10);
        Response.Cookies.Add(cookie);
        // Make sure to also do Session.Clear() if you're using session.
        return RedirectToAction("index", "home");
    }

将“.ASPXANONYMOUS”更改为您的 cookie 名称。我使用上面的默认匿名名称。

于 2013-03-21T20:30:36.203 回答
-1

我不确定这是否是您所要求的,但您可以清除发送到浏览器的所有 cookie,如下所示:

Response.Cookies.Clear();

如果您遇到身份验证问题,您可能需要澄清问题。

于 2009-02-17T12:46:34.467 回答