簡體   English   中英

基於表單的登錄和FormAuthenticationTicket仍然要求憑證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM