asp.net网站长时间登陆后失效,不能登出和进入其他需要登陆后才能进入的页面。。。
用asp.net开发了一个网站,最近在服务器上测试,有一个很诡异的问题一直不能解决,用户登陆以后长时间不操作,再进行操作时,只要是需要用户登陆以后才能浏览的页面,点击以后都会返回到点击之前的页面,跳转不过去,然后又发现,不需要登陆浏览的页面,比如帖子列表的页面,有时候也会只能显示之前正常时候浏览过的样子,好像数据库没有重新加载。。。而且没有error log之前一直以为是web.config上cookie 和 session timeout设置的问题,但是查了很多帖子,也改了ISS上的一些设置把session的time out时间都改成120 minutes了,但是超时后页面好像不会自动登出,就只是发生上面描述的现象,之前改成360 minutes过,但是没有到6小时就发生这个问题了。。。
所以求大牛给指点迷津,完全没有方向了呀。。。
<system.web>ASP.NET 服务器 数据库 session 超时 --------------------编程问答-------------------- 状态保持生命周期结束后怎么也要操作一次才可以判断吧?
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name="User" protection ="All" timeout ="120" ></forms>
</authentication>
<machineKey
validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"
decryption="Auto" />
<!--把http请求和发送的编码设置成GB2312,否则在取查询字符串的时候会有问题-->
<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
<!--设置session超时时间为120分钟,并启用cookieless-->
<sessionState mode="InProc" cookieless="true" timeout="120" />
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*"
path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler,
Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
一直用心跳试监听时间?
--------------------编程问答--------------------
session超时以后再操作不会自动就退出了么?
我每次都是再操作就无法进入需要登录以后才能浏览的页面,总是返回原页面。。。
比较菜,求指教。。。 --------------------编程问答-------------------- IIS进程回收了吧 --------------------编程问答--------------------
这个要怎么设置呢? --------------------编程问答-------------------- form验证不是应该会在session超时的时候自动跳转到登陆页面的么? --------------------编程问答-------------------- form验证客户端的cookie,跟session无关。 --------------------编程问答-------------------- <sessionState mode="InProc" cookieless="true" timeout="120" />
那我设置了这个也没有用么?
而且我在IIS上的session设置也是120
还有下面这个
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
Session.Timeout = 120;
就是不知道为什么超时了不会跳出。。。 --------------------编程问答-------------------- 验证处理没做好,失效就直接跳转到登录页面,路径别搞错了,建议以“/”打头(本地测试如果不是服务器系统请通过iis来调试)。 --------------------编程问答-------------------- <forms loginUrl="Login.aspx"
这个login.aspx 是根目录下面的吗? 最好加个~, 改成"~/login.aspx" --------------------编程问答-------------------- 时间长了,你出提示。自动跳转到登录页面就行了。重新登录就没问题了。
技术群:Technical Team Interflow 42226269
主要:C# 、Java 、Test
补充:.NET技术 , ASP.NET