C# 基于表单的登录和表单身份验证票证仍要求提供凭证

C# 基于表单的登录和表单身份验证票证仍要求提供凭证,c#,asp.net-mvc,C#,Asp.net Mvc,我使用ASP.NET MVC3和基于表单的登录。 登录过程非常有效。但当我关闭浏览器并返回页面时,它会转到登录页面,我需要再次输入凭证。我怎样才能避免这种情况 这是我的登录代码: [HttpPost] public ActionResult LogOn(LogOnModel model, string returnUrl) { if (ModelState.IsValid) { if

我使用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(在您的情况下,在手动创建cookie时设置
faCookie.Expires

有关更多信息,请参阅