web-dev-qa-db-ja.com

Asp .Net MVC 5でセッションタイムアウト時間を増やす方法は?

アプリケーションは数秒で自動的にログアウトします。30分に増やしたいと思います。

Web.configファイルでコードを実行しましたが、機能しません。私はそれについて多くの記事を調査しましたが、解決できませんでした。

Web.configコード:

<sessionState mode="InProc" timeout="1800"></sessionState>
    <authentication mode="Forms">
      <forms loginUrl="~/Login" timeout="1800">
      </forms>
    </authentication>
6
Manish Tiwari

セッション状態と認証のタイムアウトは秒単位ではなく分単位です。だから、あなたは持っているべきです

<sessionState mode="inProc" timeout="30" ></sessionState>
<authentication mode="Forms">
      <forms loginUrl="~/Login" timeout="30">
      </forms>
</authentication>

また、これが設定されている方法では、認証が付与されてから30分後にタイムアウトし、セッションが最後のアクセスから30分延長されることに注意してください。これら2つをより同期させるには、slidingExpiration = "True"をフォーム要素に追加する必要があります。

これらの変更後も数秒経過してもログアウトする場合は、次の点を確認してください。

  1. クッキーはウェブサイトで作成されていますか?名前は.ASPXAUTHで、セッションCookieである必要があります。
  2. タイムアウトが発生したときにブラウザを閉じていますか?
  3. 同じ認証方法を使用する複数のアプリケーションがありますか?
4
Jeff Siver

これを設定できる別の場所は、Global.asaxファイルです。 sessionStateweb.configファイルで機能しない場合は、そこで確認することをお勧めします。どうやらGlobal.asaxファイルwillweb.configファイルをオーバーライドします。次のように設定できます。

Session.Timeout = 30;//Timeout expects an integer representing minutes
0
Drew Kennedy