FormsAuthentication - 处理用户名的更改

时间:2011-06-10 02:23:22

标签: asp.net asp.net-mvc forms-authentication

我的ASP.NET MVC Web应用程序允许管理员更改自己或其他用户的用户名。

用户通过致电FormsAuthentication.SetAuthCookie(userName [string], createPersistentCookie [bool])登录。他们通过致电FormsAuthentication.SignOut()退出。我知道在更新用户名后我需要将其签名并重新登录。但是,如何检索createPersistentCookie现有值?例如如何在签名时保留原来的“记住我”设置?

1 个答案:

答案 0 :(得分:8)

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
}