2012-03-12 8 views
1

アクティビティがないときにホームページにリダイレクトしたい。 しかし、私は、ユーザーのログインや1つを持っている必要はありません。しかし、私はホームページにリダイレクトできるようにしたいときは、何も活動していません。非アクティブ後にセッションのタイムアウトを設定する

は、私は私がホームページ

Session["UserId"] = 1; 

でこれを設定し、その後、web.conf

<system.web> 
<sessionState mode="InProc" timeout="2"> 

でこれを設定し、私もこれを試してみましたが、機能のdoesntでも火災。

protected void Page_Init(object sender, EventArgs e) 
    { 
     CheckSession(); 
    } 


    private void CheckSession() 
    { 
     if (Session["UserId"] == null) 
     { 
      Response.Redirect("KioskHome.aspx"); 
     } 
    } 

global.asaxファイルを使用できますか?

void Session_Start(object sender, EventArgs e) 
    { 
     // Code that runs when a new session is started 

    } 

    void Session_End(object sender, EventArgs e) 
    { 


    } 

単純な解決策は何ですか。ありがとうございました

+2

これはあなたの質問に答える必要がありますhttp://stackoverflow.com/a/6210463/590177 –

+0

それは私のポストではなく、その解決法は私を助けません。だからなぜ私のポストを閉じる? –

+0

セッションのタイムアウトを確認してからリダイレクトする場合は、提供されたコードが有効です。 2つの質問はどちらもタイムアウトのリダイレクトに関連しているので、私は近い投票を提供しました。おそらくその解決策が役に立たない理由を説明してください。 –

答えて

1

私はあなたの質問を理解している場合は、ユーザーが一定の時間内に何もアクションを実行していない場合は、ユーザーのブラウザをリダイレクトする。

この場合、サーバー側の動作は役立ちません。接続は既に閉じています。セッションが終了するとglobal.asax Session_endが起動し、その時点でクライアントが接続されません。 ASP.NET Page Lifecycleの詳細については、こちらをご覧ください。

ただし、特定のタイムアウト後にユーザーをリダイレクトできるJavascriptなど、クライアント側の動作の何らかの形があります。 これには、ユーザーが複数のタブを使用する可能性があるなど、さまざまな問題があるため、セッションがタイムアウトしたときを正確に知ることは困難です。

関連する問題