私は MVC 4 を使用しています。ログイン アクションは次のようになります。
[HttpPost]
public ActionResult LogOn(Account loginInfo, string returnUrl)
{
if (this.ModelState.IsValid)
{
if (loginInfo.Username == "Ali" && loginInfo.Password == "110")
{
FormsAuthentication.SetAuthCookie(loginInfo.Username, loginInfo.RememberMe);
FormsAuthentication.RedirectFromLoginPage(loginInfo.Username, loginInfo.RememberMe);
}
}
this.ModelState.AddModelError("", "The user name or password provided is incorrect.");
ViewBag.Error = "Login faild! Make sure you have entered the right user name and password!";
return View(loginInfo);
}
ここで私の質問は次のとおりです。ユーザーがチェックしたRememberMeチェックボックスまたはNotをいつでもchackする方法、つまりPersistentCookieの値を取得するにはどうすればよいですか?
2 つのソリューション:
私の解決策:
var isPersistent = false;
var authCookie = HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
var ticket = FormsAuthentication.Decrypt(authCookie.Value);
isPersistent = ticket.IsPersistent;
}
ChunHao Tang ソリューション (少し変更) :
var isPersistent = ((System.Web.Security.FormsIdentity) User.Identity).Ticket.IsPersistent;