我在我的一个ASP.net应用程序中有一个有线场景。
我使用自定义“roleManager”的ASP.net会员资格,
并在web.config中使用以下标记来限制任何没有“关键字”(角色)角色的用户访问“关键字”(路径)文件夹
<location path="Keywords">
<system.web>
<authorization>
<allow roles="Keywords"/>
<deny users="*" />
</authorization>
</system.web>
</location>
如果任何具有其他角色的用户允许评估此URL(在这种情况下为关键字)将被重定向到自定义访问被拒绝页面。
现在工作正常但是当我离开我的应用程序时,我的应用程序处于不活动状态30分钟,我无法访问“关键字”,如果我关闭浏览器,我最终会自定义访问被拒绝页面,再次登录它开始正常工作。
请在这种情况下帮助我。
提前致谢
答案 0 :(得分:2)
默认情况下,ASP.NET会话在20分钟后超时,我认为。
您可以通过在Web.config中指定更长的时间(以分钟为单位)来扩展它:
<system.web>
<sessionState timeout="60"/>
...
</system.web>
如果您通过表单进行身份验证,则应提高身份验证cookie超时值以匹配。
另外请记住,在IIS下运行站点时,您应该将应用程序池的空闲时间延长到类似的值。如果不这样做,将卸载ASP.NET站点的HttpApplication实例,从而销毁该过程中的所有活动会话。
答案 1 :(得分:0)
通常,第一个也是最简单的事情就是将configuration/system.web/sessionState@timeout值更改为类似“90”的内容
<sessionState timeout="90" />
20分钟后似乎仍然超时。 * 这没有任何意义,它明确表示会话超时应该是90分钟。 *
这里有几个问题在一起:
通过单击应用程序所在的应用程序池上的“属性”(IIS 6)或“高级设置”(IIS 7.5),可以找到应用程序池的设置。
确保“空闲超时(分钟)”的值设置为会话超时(至少为90),以确保所有会话都保持整个会话超时期限。
尝试此解决方案如果仍有问题请参阅本文,它告诉更多选项尝试
http://asp-net.vexedlogic.com/2012/05/23/aspasp-net-session-timeout-how-do-i-change-it/