使用通配符映射时,ASP.NET窗体身份验证超时的最佳解决方法是什么?

使用通配符映射时,ASP.NET窗体身份验证超时的最佳解决方法是什么?,asp.net,forms-authentication,wildcard-mapping,Asp.net,Forms Authentication,Wildcard Mapping,我的团队正在开发一个糟糕的旧网站,大多数页面仍然是ASP经典。但是,我们最近已经迁移到使用ASP.NET和通配符映射的表单身份验证。除了一件事之外,一切都运行得出奇地好:登录用户超时太快了。查看日志后,人们似乎正好在20分钟后超时(这是由于不活动而指定的超时) 因此,我们的假设是ASP经典页面不会触发表单身份验证框架中重置非活动计时器的任何机制。我在谷歌上搜索过,甚至读过伟大的顾的通配符映射帖子,但仍然找不到其他有这个问题的人。那么,1)你见过这个问题吗?2)最好的解决方法是什么?(除了在每个在

我的团队正在开发一个糟糕的旧网站,大多数页面仍然是ASP经典。但是,我们最近已经迁移到使用ASP.NET和通配符映射的表单身份验证。除了一件事之外,一切都运行得出奇地好:登录用户超时太快了。查看日志后,人们似乎正好在20分钟后超时(这是由于不活动而指定的超时)

因此,我们的假设是ASP经典页面不会触发表单身份验证框架中重置非活动计时器的任何机制。我在谷歌上搜索过,甚至读过伟大的顾的通配符映射帖子,但仍然找不到其他有这个问题的人。那么,1)你见过这个问题吗?2)最好的解决方法是什么?(除了在每个在后台加载哑.NET页面的janky ASP页面中手动放置隐藏框架之外)

更新:slidingExpiration设置为true


另外:我们不能使用永久会话,因为我们需要应用程序在不活动20分钟后超时。此外,这个糟糕的网站是这样写的,界面通常存储在页面中。没有简单的接口代码可以让我将JavaScript插入其中。我们尝试将一些js放入一个包含文件中,该文件被大约80%的页面调用,但这导致文件下载缓冲区出现一些深奥的问题,因此我们可能不得不尝试另一种方法。谢谢

创建永久会话。

基本上,您最终会在母版页或导航用户控件中发出一些JavaScript和图像标记(无论您使用什么来实现一致的导航)。此JavaScript在某个时间间隔将图像标记的源更改为http处理程序端点(some.aspx、.ashx),该端点返回1x1 pix clear gif作为图像的响应。持续请求确保空闲页面将使会话保持活动状态

只要浏览器窗口打开到您的页面,您的ASP.NET会话就不会超时。

JavaScript通常会在请求中添加一个随机数,这样浏览器就不会缓存请求


有一个不错的演练可用。

我假设您已经手动创建了cookie,在这种情况下,代码中的超时值可能会覆盖配置中的超时值

首先,如果可能的话(可能不是),不要手动创建cookie,它不仅可以让你省去这些麻烦,还可以让你省去很多其他麻烦

如果您必须手动创建cookie,请确保您使用的超时实际上正在读取您在配置文件中设置的超时值,并且滑动过期设置为true(您已经说过)


也就是说,当手动创建cookie时,我们仍然存在超时问题。在我工作的地方,我们实施了一个解决方案,允许自动创建cookie,超时不再是问题;但是,它确实造成了其他问题,我们被迫返回。

您没有遇到此问题。我有完全相同的情景。