[英]Form based login and FormAuthenticationTicket still ask for credential
我使用ASP.NET MVC3與基於表單的登錄。 登錄過程非常有效。 但是當我關閉瀏覽器並返回頁面時,它會進入登錄頁面,我需要再次輸入憑證。 我怎么能避免這種情況。
這是我的登錄代碼:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.Username, model.Password))
{
var userprofile = svc.GetUserByUsername(model.Username);
var serializeModel = new CustomPrincipalSerializeModel();
serializeModel.Username = userprofile.Username;
serializeModel.Name = userprofile.Name;
serializeModel.DisplayAs = userprofile.DisplayAs;
serializeModel.MarketId = userprofile.MarketId;
var serializer = new JavaScriptSerializer();
var userData = serializer.Serialize(serializeModel);
//FormsAuthentication.SetAuthCookie(model.Username, model.RememberMe);
var authTicket = new FormsAuthenticationTicket(
1,
model.Username,
DateTime.Now,
DateTime.Now.AddDays(30),
true,
userData);
var encTicket = FormsAuthentication.Encrypt(authTicket);
var faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
Response.Cookies.Add(faCookie);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "Användarnamnet eller lösenordet är felaktigt.");
}
}
return View(model);
}
您需要使用持久性cookie(在您的情況下設置faCookie.Expires
,因為您手動創建cookie)。
有關詳細信息,請參閱此KB文章 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.