FormsAuthentication - обработка изменения имени пользователя - PullRequest
10 голосов
/ 10 июня 2011

Мое веб-приложение ASP.NET MVC позволяет администраторам изменять свои собственные имена пользователей или имена других пользователей.

Пользователи входят в систему путем вызова FormsAuthentication.SetAuthCookie(userName [string], createPersistentCookie [bool]).Они вышли из системы, позвонив по номеру FormsAuthentication.SignOut().Я понимаю, что после обновления имени пользователя мне нужно выйти из системы и снова войти в нее.Но как мне получить существующее значение createPersistentCookie?например, как мне сохранить их первоначальную настройку «запомнить меня» при входе в систему?

1 Ответ

8 голосов
/ 10 июня 2011
var cookieName = FormsAuthentication.FormsCookieName;
var request = HttpContext.Current.Request;
var cookie = request.Cookies.Get(cookieName);
if (cookie == null)
    return;

try
{
    var ticket = FormsAuthentication.Decrypt(cookie.Value);

    //This should give you what you want...
    bool isPersistent = ticket.IsPersistent;
}
catch (Exception ex)
{
    //Logging
}
...