2016-08-13 48 views
2

アプリケーションログアウトは数秒で自動的に30分に増やしたいです。Asp .Net MVC 5でセッションタイムアウト時間を増やすには?

web.configファイルでコードを実行しましたが、動作しません。私はそれについて多くの記事を研究したが、私はそれを解決することができませんでした。

のWeb.configコード:

<sessionState mode="InProc" timeout="1800"></sessionState> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Login" timeout="1800"> 
     </forms> 
    </authentication> 
+0

表示される設定は機能します。セッションがまだタイムアウトしているように見える場合は、何か別のことが起こっています。ホスティング環境がどのようなものかを説明し、セッションを使用する関連コードを表示し、正確にどのような動作が起こるかを説明します。 – CodeCaster

答えて

0

これを設定することができます別の場所があなたのGlobal.asaxファイルです。 sessionStateがファイルで動作しない場合は、こちらをご覧ください。明らかにGlobal.asaxファイルは、web.configファイルを無効にします。です。セッション状態&認証タイムアウトは数分ではない秒である

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

私はこれをしましたが、「セッションの状態はこのコンテキストでは利用できません」というエラーが表示されます。 –

+0

このアプローチは提案しませんが、Session_Start内でエラーなしでテストしました。 – QMaster

1

:それはこのように設定することができます。それで、あなたはまた、あなたが道はこれがセットアップであることを認識しておく必要があり

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

を持っている必要があり、認証、セッションが最後のアクセスからも30分を延長する一方、それが許可された30分後にタイムアウトになります。これらの2つを同期させるには、slidesEpiration = "True"をforms要素に追加する必要があります。

、これらの変更後に、それはまだ数秒後にあなたをログアウトされている場合は、見て取る:

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

sessionStateのデフォルト値はslidingExpiration = "True"なので、暗黙的に設定する必要はありません – Dror

+0

slidingExpirationは、場合によってはタイマーを期限切れにするよう強制します。しかし、タイムアウト期間を変更する理由はまだまだあります。 –

関連する問題