ASP.NET MVC 3アプリケーションで、ログオンアクションの[記憶する]チェックボックスをオンにすると、永続的なCookieが作成されるため、ブラウザーを閉じて再度開くと、引き続きログインする必要があります。
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
Fiddlerを使用すると、セッションIDが次のように送信されていることがわかります。
Request sent 342 bytes of Cookie data:
ASP.NET_SessionId=<Session ID>; .ASPXAUTH=<Auth String>
しかし、ブラウザを閉じて再度開くと、まだログインしていますが、リクエストはセッションIDを送信しません。
Request sent 298 bytes of Cookie data:
.ASPXAUTH=<Auth String>
次にResponse.Write(Session.SessionID)
、アクションを入力します。これは、ブラウザを再度開いた後、ページを更新するたびに変更されます。ブラウザを閉じない場合、セッションIDは更新のたびに同じままです。
StateServer
で経験したように、これで問題が解決する可能性があると思ったので、セッション状態を保持するためにを使用していInProc
ます。