2010-12-13 10 views
1

セッションオブジェクトにいくつかのユーザー設定を保存します。私がそれを必要とするなら、セッションからそれを手に入れてください。この理由から私は別のコントローラがこのBaseControllerから継承されるベースコントローラを作成したいと思っています。セッションがヌルであるかどうかを確認する必要があります。セッションがnullの場合、ログオンページにリダイレクトされます。私は、WebConfigのファイルにasp.net mvcセッションオブジェクト

<authentication mode="Forms"> 
     <forms loginUrl="~/Membership/LogOn" timeout="1" defaultUrl="~/Membership/LogOn" /> 
    </authentication> 

を追加しました。 1分後にLogOnページにリダイレクトされます。しかし、私のセッションは10分後に終わります。セッションオブジェクトとhttpContext.Request.IsAuthenticatedが同じ時間に死ぬようにする方法は?

そして、どのイベントがBaseControllerのセッションをチェックする必要があるか教えてください。 OnActionExecutingで?

+0

これは[以前](http://stackoverflow.com/questions/454616/asp-net-cookies-authentication-and-session-timeouts)で尋ねられています。しかし、承認された答えは、認証チケットにデータを追加することだけでした。あなたは単にそれをすることができないと確信していますか? – rsenna

+0

それは私が必要なものではありません。 httpContext.Request.IsAuthenticatedはfalseを返しますが、セッションはまだ終了しません。 – AEMLoviji

答えて

0

私はそれをしました。 1.私は、私のセッションが(5分) 3.後に期限切れになるように、私はIISを構成しているのsession_start()イベント 2のGlobal.asaxファイルでセッションを作成し、web.configファイルにこのセクションを追加した

<authentication mode="Forms"> 
      <forms loginUrl="~/Membership/LogOn" timeout="5" defaultUrl="~/Membership/LogOn" /> 
    </authentication> 

ここで、httpContext.Request.IsAuthenticatedは、セッションが試されたときにfalseを返します。両方のタイムアウトが5分であるため