C#.NET フォーム認証でセッション タイムアウトを 6 時間に設定するにはどうすればよいですか?
-
19-09-2019 - |
質問
私のアプリケーションではフォーム認証とセッションを使用しています。ユーザーが 6 時間後にログアウトされるようにするにはどうすればよいですか?
私の web.config では、セッションのタイムアウトを 360 分に設定しました。ただし、10 分間何も操作しないと、再度ログインする必要があります。
また、フォーム認証のタイムアウトを 360 分に設定しました。私が間違っていることは何ですか?
解決
セッションタイムアウトを影響する他のいくつかのタイムアウト値があります。私の心に来るそのうちの一つは、ワーカープロセスのタイムアウト(それがIISから設定されている)です。ワーカープロセスのデフォルトのタイムアウトは20分ですので、あなたのサイトには活動が20分間が存在しない場合は、ワーカープロセスが終了すると、あなたがインプロセスモードでセッションを使用している場合、セッションが終了させます。だから、360分になっワーカープロセスのタイムアウト値は、あなたにも必要かもしれないものです。
他のヒント
この設定を試してください:
u003Cauthentication mode="Forms">n u003Cforms timeout="360" slidingExpiration="true"/>n u003C/authentication>
以下の点も確認してください。
FormsAuthenticationTicket がより低い Cookie タイムアウト値で作成された場合、それがオーバーライドされる可能性があります
アプリケーション プールの「ワーカー プロセスのシャットダウン」間隔が短い場合、状態がより早くリセットされます。
の代わりにセッションタイムアウトを設定するには、例えば、セッションを存続するための機構を実現することができます。ページを更新するか、Ajaxはなどを呼び出す作る
。あなたは最大ログイン時間を実装することによって、これに追加することができ、それは、などを確認することができます。
あなたはとタイムアウトを調整する必要があるの slidingExpiration の
<authentication mode="Forms">
<forms requireSSL="false"
defaultUrl="Default.aspx"
loginUrl="Login.aspx"
path="/"
slidingExpiration="false"
timeout="360"
name=".ASPXFORMSAUTH">
</forms>
</authentication>
順を追って説明のステップの 単一のアプリケーションプールのアイドルワーカープロセスページアウトを設定します 1.Open IISマネージャーます。
2.Selectアプリケーションプールの[接続]ウィンドウで、アプリケーションプール]ペインでアプリケーションプールを選択し、[操作]ウィンドウで... [詳細設定]をクリックします。
[詳細設定]ダイアログボックスで事情を聴く、プロセスモデルの下で、必要に応じて異なる時間帯にデフォルトから20分のアイドルタイムアウト値を設定します。
4.Click OKます。
あなたはインプロセスのセッションを使用していますか?お使いのアプリケーションプールがリサイクル場合、これはすべてのセッションを殺すように、その場合には(それはASP.net私の知る限りではデフォルトです)、確認してください。私がチェックするIISを持っていないが、私はそれは一定時間アイドルだ場合アプリケーションプールをシャットダウンするように設定されたと考えている - これはあなたの開発サーバーであれば、多分あなたはあまりにも長い間アイドル状態になってきたアプリケーションプールをリサイクルするように、そして、あなたのインプロセスセッションが殺されていますか?
私はそれがすぐに代わりにインプロセスのは、StateServerまたはSQLServerのを実装することがいかに簡単であるかわからないんだけど、ここにある<のhref = "http://msdn.microsoft.com/en-us/library/ms178586.aspx "REL =" nofollowをnoreferrer ">についてのMSDNページのセッション・ステートするます。