2016-06-14 14 views
0

Ich arbeite an ASP.NET MVC5-Anwendung, und ich möchte RememberMe-Funktionalität implementieren. Wenn der Benutzer RememberMe dann überprüft, sollte der Benutzername automatisch in das Feld username abgerufen werden, wenn der Benutzer die Website erneut aufruft. Ich habe es mit folgenden Methoden versucht. Aber es hat Probleme damit und ich kann das nicht machen. Kann mir jemand helfen?Remember Me - Fetch Benutzername - MVC

var authTicket = new FormsAuthenticationTicket(
              1, 
              userId, //user id 
              DateTime.Now, 
              DateTime.Now.AddMinutes(50), // expiry 
              model.RememberMe, //true to remember 
              string.Empty 
             ); 

HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket)); 
if (authTicket.IsPersistent) 
{ 
    cookie.Expires = authTicket.Expiration; 
} 
System.Web.HttpContext.Current.Response.Cookies.Add(cookie); 

Vielen Dank im Voraus.

Antwort

0

Ich habe dies mit dem folgenden Code getan. In Controller: In Anmeldung Aktion POST:

if(model.RememberMe == true) 
        { 
         Response.Cookies["email"].Value = model.Email; 
         Response.Cookies["email"].Expires = DateTime.Now.AddDays(365); 
        } 

In Anmeldung Erste Aktion:

if (Request.Cookies["email"] != null) 
       ViewBag.email = Request.Cookies["email"].Value; 

In Aussicht:

@if (ViewBag.email != null) 
    { 
    @Html.TextBoxFor(m => m.Email, new { @class = "form-control", @Value = ViewBag.email }) 
    } 
    else 
    { 
    @Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) 
    } 
Verwandte Themen