我遇到了超时的问题。
首先,即使webconfig中的时间设置为120分钟,服务器上的超时也会每隔20分钟发生一次。
其次,当超时发生时,它会转到登录页面,这是正确的,但在重新登录时,它有时会转到默认页面,有时会转到它之前所在的页面。我希望它每次都转到默认页面。例如,如果这是问题所在,它应该删除所有会话和cookie。
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="~/Default.aspx" name="GUI" slidingExpiration="true" timeout="120" path="/">
</forms>
</authentication>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
<sessionState mode="InProc" cookieless="false" timeout="120"/>这是我的webconfig中的内容。
发布于 2010-10-13 00:19:22
我的理解是,使用您所描述的设置,ASP.NET不允许未经身份验证的web访问您的站点。这意味着当你转到WebForm1.aspx时,你会被重定向到带有这个url的登录页面。
/login.aspx?ReturnUrl=%2fWebForm1.aspx然后,在您的登录页面中,您可能会看到如下内容
protected void LoginButton_Click(object sender, EventArgs e)
{
if (FormsAuthentication.Authenticate(UsernameTextbox.Text, PasswordTextbox.Text))
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text,false);
else
// Let the user know they didn't authenticate
}这将重定向回ReturnUrl指定的任何内容。
好吧,如果你不想发生这种情况,那就别这么做。做一些像这样的事情。
protected void LoginButton_Click(object sender, EventArgs e)
{
if (FormsAuthentication.Authenticate(UsernameTextbox.Text, PasswordTextbox.Text))
Response.Redirect("default.aspx");
else
// Let the user know they didn't authenticate
}发布于 2010-10-13 00:40:19
这可能与您的特定问题有关,也可能与您的特定问题无关,但进程内用户会话将无法在应用程序回收后存活。在IIS中检查您的应用程序的回收时间是否足够长。如果应用程序保持活动状态,您的会话可能确实会持续120分钟,但一旦空闲时间过长,您的应用程序将重新启动,您的用户会话将失效。
发布于 2010-10-12 22:40:06
检查以下内容:
https://stackoverflow.com/questions/3915810
复制相似问题