2 votes

obtenir la valeur de PersistentCookie dans MVC Custom Membership

J'utilise MVC 4, mon action de connexion est comme ceci :

    [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);
    }

maintenant ma question est : comment je peux à tout moment vérifier si un utilisateur a coché la case RememberMe ou non, en d'autres termes obtenir la valeur du PersistentCookie ?

Deux SOLUTIONS :

ma solution :

        var isPersistent = false;
        var authCookie = HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName];
        if (authCookie != null)
        {
            var ticket = FormsAuthentication.Decrypt(authCookie.Value);
            isPersistent = ticket.IsPersistent;
        }

Solution ChunHao Tang (avec un petit changement) :

var isPersistent  = ((System.Web.Security.FormsIdentity) User.Identity).Ticket.IsPersistent;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X