当前位置:编程学习 > C#/ASP.NET >>

asp.net网站长时间登陆后失效,不能登出和进入其他需要登陆后才能进入的页面。。。

用asp.net开发了一个网站,最近在服务器上测试,有一个很诡异的问题一直不能解决,用户登陆以后长时间不操作,再进行操作时,只要是需要用户登陆以后才能浏览的页面,点击以后都会返回到点击之前的页面,跳转不过去,然后又发现,不需要登陆浏览的页面,比如帖子列表的页面,有时候也会只能显示之前正常时候浏览过的样子,好像数据库没有重新加载。。。而且没有error log

之前一直以为是web.config上cookie 和 session timeout设置的问题,但是查了很多帖子,也改了ISS上的一些设置把session的time out时间都改成120 minutes了,但是超时后页面好像不会自动登出,就只是发生上面描述的现象,之前改成360 minutes过,但是没有到6小时就发生这个问题了。。。

所以求大牛给指点迷津,完全没有方向了呀。。。

<system.web>
    <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>
ASP.NET 服务器 数据库 session 超时 --------------------编程问答-------------------- 状态保持生命周期结束后怎么也要操作一次才可以判断吧?
一直用心跳试监听时间?
--------------------编程问答--------------------
引用 1 楼 account8011 的回复:
状态保持生命周期结束后怎么也要操作一次才可以判断吧?
一直用心跳试监听时间?


session超时以后再操作不会自动就退出了么?
我每次都是再操作就无法进入需要登录以后才能浏览的页面,总是返回原页面。。。

比较菜,求指教。。。 --------------------编程问答-------------------- IIS进程回收了吧 --------------------编程问答--------------------
引用 3 楼 await2013 的回复:
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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,