Очистить анонимную идентификацию?

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


person appqui-platform    schedule 17.02.2009    source источник


Ответы (4)


Да!

 System.Web.Security.AnonymousIdentificationModule.ClearAnonymousIdentifier()

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

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

person Simon_Weaver    schedule 24.10.2009
comment
примечание: насколько я могу судить, эти два могут прекрасно сосуществовать, поэтому вы можете не захотеть его удалять. не просто предполагайте, что вам нужно удалить его только потому, что вы вошли в систему. Вы даже можете связать два профиля на серверной стороне - никто не может сказать об этом со стороны клиента, но может быть полезно отслеживать пользователей. - person Simon_Weaver; 09.12.2009
comment
обновление: я немного изменил свое мнение по этому поводу. похоже, что Profile_MigrateAnonymous срабатывает не только при входе пользователя в систему, но и при наличии как анонимного, так и аутентифицированного cookie. мой другой вопрос может представлять интерес stackoverflow.com/questions/1895266/ - person Simon_Weaver; 13.12.2009

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

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

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

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

Это поможет.

person Sachin Kumar    schedule 29.12.2011

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

person TTT    schedule 21.03.2013

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

Response.Cookies.Clear();

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

person HectorMac    schedule 17.02.2009