Очистить анонимную идентификацию? - PullRequest
2 голосов
/ 17 февраля 2009

Есть ли API для очистки анонимных файлов cookie?

Ответы [ 4 ]

4 голосов
/ 25 октября 2009

Да!

 System.Web.Security.AnonymousIdentificationModule.ClearAnonymousIdentifier()

См. полезную статью : (Перенос настроек анонимного пользователя)

Также Лучший способ перенести анонимный профиль stackoverflow question.

0 голосов
/ 22 марта 2013

Я использую MVC4, и в моем сценарии я хочу иметь возможность удалить анонимный куки-файл, чтобы новый автоматически генерировался, даже если пользователь никогда не входит в систему. (Чтобы тестерам не нужно было удалять их куки каждый раз, когда они хотят вернуться на сайт в качестве нового пользователя.) 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" на имя вашего куки. Я использую анонимное имя по умолчанию выше.

0 голосов
/ 29 декабря 2011

Изначально я столкнулся с проблемой «AnonymousIdentificationModule.ClearAnonymousIdentifier ()». Ошибка: «ClearAnonymousIdentifier не поддерживается, если функция отключена или пользователь является анонимным».

Эта проблема возникает только при попытке очистить анонимный идентификатор, когда пользователь itsef является анонимным пользователем. Означает, что анонимный пользователь не может удалить cookie другого анонимного пользователя.

Для этого поместите код в случае, когда пользователь аутентифицирован (вошел в систему), например:

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

Это поможет.

0 голосов
/ 17 февраля 2009

Я не уверен, что это то, о чем вы спрашиваете, но вы можете удалить все куки, отправленные в браузер, следующим образом:

Response.Cookies.Clear();

Если у вас проблемы с аутентификацией, вы можете уточнить вопрос.

...