我在下面设置了一个超时,我想确保它能正常工作:
我的网页上有以下内容。配置文件:
<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>
我的问题是,当用户去Watstream。在它们被验证为StUser角色的一部分之后,我期望页面在没有活动后2分钟超时,因为这是我对超时的要求。相反,即使过了2分钟,我也没有收到超时消息。
还请注意,我的目标实际上是在2天后让它超时,但我这样做只是为了确保2分钟它做了我期望它做的事情。
要触发超时,您必须回发到服务器。
试试这个:
- 在Watstream上放一个按钮。并绑定onclick事件回发到服务器
- 登录站点
- 等待3分钟。然后点击 按钮
- 如果你做的一切都正确,你应该被重定向到你的登录页面,
另外,如果这不起作用,清除浏览器中的所有cookie,然后再试一次