0

フォームベースのログインで 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);
        }
4

1 に答える 1

2

永続的なCookieを使用する必要があります(faCookie.ExpiresCookieを手動で作成しているため、ケースに設定されています)。

詳細については、この KB 記事を参照してください。

于 2013-02-20T11:09:24.400 に答える