0

以下にタイムアウトがあり、正しく動作することを確認したかったのです。

私のweb.configファイルには次のものがあります:

<system.web>
    <authentication mode="Forms">
     <forms loginUrl="SVideo/Login.aspx" timeout="2" slidingExpiration="true" />
    </authentication>
    <authorization>
        <allow users="*" />
    </authorization>
</system.web>

ログインページには、次のコードがあります(asp.netに付属のログインコントロールを使用していることに注意してください:

protected void LoginUser_LoggedIn(object sender, EventArgs e)
{        
   var roles = Roles.GetRolesForUser(LoginUser.UserName);

   if (roles.Contains("StUser"))
   {
      const string url = "~/SVideo/WatchLive/Watstream.aspx";
      Response.Redirect(url);
   }
   else
   {
      lblMessage.Text = "Wrong UserName/Pwd Combination";
   }
}

更新: SVideo フォルダー内に次のコードがあることに注意してください。

SVideo 内には、次のコードがあります。

    <?xml version="1.0"?>
    <configuration>
     <system.web>
       <authorization>
        <allow users="*" />            
      </authorization>
     </system.web>
    </configuration>

SVideo/WatchLive 内には、次のコードがあります。

    <?xml version="1.0"?>
    <configuration>
    <system.web>
    <authorization>           
        <allow roles="StUser" />
        <deny users="*" />
    </authorization>
    </system.web>
   </configuration>

私の質問は、ユーザーが StUser ロールの一部であることが検証された後に Watstream.aspx にアクセスすると、タイムアウトのために私が持っているものであるため、アクティビティがなくなってから 2 分後にページがタイムアウトすることを期待していたということです。代わりに、2 分経ってもタイムアウト メッセージが表示されません。

また、私の目標は実際には2日後にタイムアウトすることですが、これを行っていたのは、2分間、期待どおりに動作することを確認するためだけだったことに注意してください。

4

1 に答える 1

0

タイムアウトをトリガーするには、サーバーにポストバックする必要があります。

これを試して:

  1. Watstream.aspx にボタンを配置し、onclick イベントをバインドしてサーバーにポストバックします。
  2. サイトにログインする
  3. Watstream.aspx ページで 3 分間待ってから、ボタンをクリックします。
  4. すべてを正しく行った場合は、ログイン ページにリダイレクトされます。

また、これがうまくいかない場合は、ブラウザからすべての Cookie を消去して、もう一度試してください。

于 2013-05-24T17:19:00.443 に答える