2016-06-14 34 views
0

我正在研究ASP.NET MVC5應用程序,並且我想實現RememberMe功能。在這裏,當用戶檢查RememberMe時,每當用戶再次訪問網站時,用戶名應該自動獲取到用戶名字段。我嘗試了以下方法。但它有問題,我無法做到這一點。任何人都可以幫助我做到這一點?記住我 - 獲取用戶名 - 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); 

在此先感謝。

回答

0

我已經通過使用以下代碼完成了此操作。 在控制器: 在登錄POST操作:

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

在登錄初始操作:

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

在View:

@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" }) 
    }