私は初めてのMVC3アプリケーションを起動しました。ユーザーが自分のサイトにアクセスしてログインすると、そのユーザーに関するデータを含む.ASPAUTH Cookieが設定されます。時間が過ぎるまでうまくいく。 Cookieがブラウザに入っていても、もう一度ログインする必要があり、1年後に有効期限が設定されていることがわかります。私のlocalhost上で正常に動作します。 私の情報をクッキーに設定するのではなく、何とかセッション中ですが、1時間以内にコンピュータを再起動してもまだログインしています。しかし、1時間後にウェブにアクセスしないと私はログアウトしています。MVC3はクッキーを受け入れません
ありがとうございました。
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
requestedUser.Name,
DateTime.Now,
DateTime.Now.AddYears(1),
true,
string.Format("{0};{1};{2}", requestedUser.IDUser.ToString(), requestedUser.IsAdmin.ToString(), profilePicture));
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
cookie.Expires = keepLogged == "keepLogged" ? DateTime.Now.AddYears(1) : DateTime.Now.AddHours(1);
this.Response.Cookies.Add(cookie);
return RedirectToAction("Index", "Posts");
アイドルタイムアウトが原因で、おそらくアプリケーションプールが再起動してセッションクッキーが無効になります - http://stackoverflow.com/questions/4277944/セッションを失うことなくリサイクル可能なiis-application-poolsです – tawman
フォーム認証を設定しているコードを表示できますか? –
@tawman助けてくれてありがとうが、クライアントのブラウザにCookieが表示されているのはなぜですか?申し訳ありませんが不満な質問が、私は本当にこれを解決し、何が間違っているか理解していない。 – Petr