使用AJAX-会话与表单身份验证超时的基本问题

使用AJAX-会话与表单身份验证超时的基本问题,ajax,forms,authentication,Ajax,Forms,Authentication,因此,我使用AJAX为客户机演示了一个考试模拟器,其中每个模拟考试大约2小时。我意识到我对会话及其与表单身份验证的关系所知不多 问题:在考试过程中,AJAX将访问代码隐藏,从而触发页面加载事件。因此,这是否意味着sessionState超时值和表单身份验证超时值都将重置 尽管这可能取决于管理会话的服务器代码,但一般的答案是“是”。AJAX请求(XmlHttpRequest)将传递浏览器cookie,允许服务器将请求与会话关联,从而重新设置计时器 如果您是通过URL而不是Cookie来管理会话,

因此,我使用AJAX为客户机演示了一个考试模拟器,其中每个模拟考试大约2小时。我意识到我对会话及其与表单身份验证的关系所知不多

  • 问题:在考试过程中,AJAX将访问代码隐藏,从而触发页面加载事件。因此,这是否意味着sessionState超时值和表单身份验证超时值都将重置
尽管这可能取决于管理会话的服务器代码,但一般的答案是“是”。AJAX请求(XmlHttpRequest)将传递浏览器cookie,允许服务器将请求与会话关联,从而重新设置计时器


如果您是通过URL而不是Cookie来管理会话,那么您需要确保AJAX请求符合URL需求,并随请求一起传递会话id。

尽管这可能取决于管理会话的服务器代码,但一般的答案是“是”。AJAX请求(XmlHttpRequest)将传递浏览器cookie,允许服务器将请求与会话关联,从而重新设置计时器


如果您是通过URL而不是Cookie来管理会话,则需要确保AJAX请求符合URL需求,并将会话id随请求一起传递。

每次请求发送到应用程序且当前会话仍然有效时,会话超时将被续订

表单身份验证可以通过两种方式工作。您可以让用户登录一段固定的时间,也可以使用滑动过期。例如:

<authentication mode="Forms">
    <forms defaultUrl="~/Default.aspx"
        loginUrl="~/Login.aspx"
        slidingExpiration="false"
        timeout="120" />
</authentication>


每次向应用程序发送请求且当前会话仍然有效时,将续订会话超时

表单身份验证可以通过两种方式工作。您可以让用户登录一段固定的时间,也可以使用滑动过期。例如:

<authentication mode="Forms">
    <forms defaultUrl="~/Default.aspx"
        loginUrl="~/Login.aspx"
        slidingExpiration="false"
        timeout="120" />
</authentication>


我将InProc用于sessionState,并且没有改变表单身份验证函数的方式(slidingExpiration为true)。我做了一个小测试,将Forms Authentication timeout设置为3,将sessionState timeout设置为2,看起来一切都正常进行了(应该超时,应该持久化)。但我从来都不太确定在处理隐形超时时该依靠什么!今晚我将监视服务器内存使用情况,看看这会产生什么样的影响。谢谢-@user303644很高兴能帮忙。您应该知道,堆栈溢出上的“谢谢”作为单词听上去很好,但更好的表达方式是向上投票和/或接受答案:)我正在将InProc用于sessionState,并且没有改变表单身份验证函数的方式(slidingExpiration为true)。我做了一个小测试,将Forms Authentication timeout设置为3,将sessionState timeout设置为2,看起来一切都正常进行了(应该超时,应该持久化)。但我从来都不太确定在处理隐形超时时该依靠什么!今晚我将监视服务器内存使用情况,看看这会产生什么样的影响。谢谢-@user303644很高兴能帮忙。您应该知道,堆栈溢出上的“谢谢”作为词语很好听,但最好通过向上投票和/或接受的答案来表达:)谢谢!我已经通过一些测试验证了这一点,但我从来都不太确定会话超时的行为。@user303644-这很常见:)。最后一点要注意的是,确保会话超时时间比表单身份验证票证到期时间长一点总是好的。这样可以确保人们在会话到期之前被引导,而不必担心空会话值:。哦,如果这个答案有帮助的话,请随意投票给我,并将其标记为正确:)很好的一点-我设置的会话比身份验证票证稍微长一点。谢谢你,汉克斯!我已经通过一些测试验证了这一点,但我从来都不太确定会话超时的行为。@user303644-这很常见:)。最后一点要注意的是,确保会话超时时间比表单身份验证票证到期时间长一点总是好的。这样可以确保人们在会话到期之前被引导,而不必担心空会话值:。哦,如果这个答案有帮助的话,请随意投票给我,并将其标记为正确:)很好的一点-我设置的会话比身份验证票证稍微长一点。又是thx