2011-02-09 4 views
3

私のASP.netアプリケーションの1つに有線のシナリオがあります。私は私のカスタム「roleManager」とASP.netメンバーシップを使用していますASP.NETセッションTimeOutの問題

とweb.configファイル内のタグの下に持つことは、「キーワード」(アクセスするには、「キーワード」(役割)の役割を持っていないユーザーを制限しますパス)フォルダ

<location path="Keywords"> 

<system.web> 

<authorization> 

<allow roles="Keywords"/> 

<deny users="*" /> 

</authorization> 

</system.web> 

</location> 

他のいくつかの役割を持つすべてのユーザーが、この場合はこのURL(キーワードを評価することを可能にした場合)は、特注のアクセス拒否されたページにリダイレクトされます。

これで問題は解決しましたが、30分も経たない状態でアプリケーションを終了したときに、「キーワード」にアクセスできなくなりました。再度ログインすると正常に動作します。

この場合はお手伝いをしてください。デフォルトでは20分後に、事前に

おかげ

+0

あなたはFormsAuthenticationと共にログインしているしようとするより多くのオプションを伝えるこの記事を参照してくださいがある場合

は、このソリューションを試してみてください?もしそうなら、クッキーがユーザのためにリロードされたことを確認しましたか? http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.aspx –

答えて

2

ASP.NETセッションのタイムアウトは、私は思います。

あなたは、Web.configファイルに(分)より長い時間を指定することで、これを拡張することができます。

<system.web> 
    <sessionState timeout="60"/> 
    ... 
</system.web> 

あなたがフォーム経由で認証されている場合は、一致する認証Cookieのタイムアウト値を大きくする必要があります。

また、IISでサイトを実行しているときは、おそらくアプリケーションプールのアイドルタイムアウトを同様のものに拡張する必要があります。これを行わないと、ASP.NETサイトのHttpApplicationインスタンスがアンロードされ、プロセス内のアクティブなセッションがすべて破棄されます。

+0

私はも追加しました。 webconfigの要素内にtimeout = "365"を設定してください。すべてが正常に動作していますが、セッションを30分以上開いたままにしておくと、位置タグでを設定したページにアクセスできますが、それはうまく動作します。私は bcosを必要とします。 –

+0

なぜセッションが何とかタイムアウト値を超えて機能することを期待していますか? –

+0

ジョーは、私が最後に忘れたあなたの素早い返信に感謝します!私のセッションがタイムアウトすると、ユーザはリンクをクリックするとログインページにリダイレクトされ、Credintialsを提供した後、Request.QueryString ["ReturnUrl"]を使用して彼女が作業していたページにリダイレクトします。彼女は再びログインすると、自分のカスタムアクセスが拒否されたページを取得します。同じIEブラウザユーザーの新しいタブであっても、そのページにアクセスできません。ウィンドウを閉じる必要があります。 :-( –

0

通常、最初に行うと最も簡単な方法は、単に「90」のようなものにconfiguration/system.web/[email protected]値を変更さ

<sessionState timeout="90" /> 

それはまだ20後にタイムアウトしているように見えます分。 * これは意味をなさないが、セッションタイムアウトが正確に90分であることを明示的に示しています。

  1. アプリケーションプールのワーカープロセスのデフォルトのアイドルタイムアウトはまた セット20分
  2. セッション状態を格納するとしているのデフォルトのモードです:一緒にここに結び付けられている問題のカップルがあります *

    IISプロセス

アプリケーションプールの設定は、アプリケーションが存在するアプリケーションプールで[プロパティ](IIS 6)または[詳細設定](IIS 7.5)をクリックすると表示されます に割り当てられた。

の値を確認し、「アイドルタイムアウト(分)は、」すべてのセッションは、セッション全体のタイムアウト時間持続することを確実にするために、最小(例90)で、あなたのセッションのタイムアウトに設定されています。まだ問題は、それが

http://asp-net.vexedlogic.com/2012/05/23/aspasp-net-session-timeout-how-do-i-change-it/