我希望登錄框中的功能可以自動填入用戶名和密碼,前提是用戶以前曾在網站上登錄併成功登錄過。我看到這在許多網站上實施,所以我想通過這種方式來做到這一點,而不會產生安全風險。ASP.NET MVC4使用cookie記住登錄密碼 - 安全的方式?
編輯:根據崗位,這是一個瀏覽器的功能,不應該用代碼來實現,因爲它從來沒有安全存儲密碼的任何地方。
編輯代碼以反映我只存儲用戶名的新方向。但是,林不知道該看什麼,看看它的工作。我嘗試登錄然後註銷,然後再次登錄屏幕,但視圖加載時,用戶名框仍然爲空。不知道它的代碼或我測試它的方式是錯誤的。
登錄POST:
[HttpPost]
public ActionResult Login(LoginModel model)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
return Json(new { ok = true, message = "Login successful." });
}
}
return Json(new { ok = false, message = "The username or password you entered is invalid. Please try again." });
}
登錄GET:
[HttpGet]
public ActionResult Login(string path)
{
LoginModel model = new LoginModel();
HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName.ToString()];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
if (authTicket != null & !authTicket.Expired)
{
model.UserName = authTicket.UserData;
}
}
return PartialView(path, model);
}
感謝您的回覆。我現在意識到,我把這個功能誤認爲是事實上它是一個瀏覽器功能。所以我決定把它留給瀏覽器輸入密碼。決定只在cookie中存儲用戶名,以便在下次訪問時自動填寫登錄框。我在原文中編輯了我的代碼,但我仍然認爲我做錯了什麼。請大家看看,非常感謝 – parliament 2012-03-24 08:46:34