1

我正在 MVC4 中开发一个 Web 应用程序,登录视图有选项记住我 - 为了实现这个功能,我使用了由 - 创建的 cookie

WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)

登录方式如下

   [AllowAnonymous]
   public ActionResult Login()
   {       //Get persistant cookie
     HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; 
     if (!ReferenceEquals(authCookie, null))
     {      //Decrypt
         FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value); 
          string userName = Server.HtmlEncode(ticket.Name); //GetuserName
          // get Role and redirect in  as done after authentication
               return RedirectToDefaultView(returnUrl, userName); 
      }
            return View();
}

好吧,我有一些顾虑 - 如果这是最佳实践,因为我只是在验证 Cookie,如果它存在于客户端机器上,我正在调用方法 RedirectToDefaultView(returnUrl, userName),该方法在 WebSecurity.Login(model.UserName, model .Password, persistCookie: model.RememberMe) 在下面的方法中..

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{ 
    if(WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
          return RedirectToDefaultView(returnUrl, userName); 
}

由于某种原因无法在登录控制中保留密码后我选择的方法,并且还在网站上阅读了这不是好的做法。

@Html.PasswordFor(model => model.Password, new { @class = "password-icon", @maxlength = 30 })

对此的任何建议或帮助都会对 gr8 有所帮助。

谢谢高铁。

4

0 回答 0