FormsAuthentication - обработка изменения имени пользователя

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

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

Ответ 1

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
}