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 回答