0

一点背景:

我在 MVC3 中开发了一个 Web 应用程序,需要用户登录才能访问。

如果网页已经离开 5 分钟,一个计时器会触发,它会向服务器发出 jQuery ajax 调用,并返回一个包含登录用户电子邮件地址的部分视图和一个密码文本框,以便用户可以重新输入他们的详细信息,然后再继续使用该应用程序。

我使用表单身份验证,它存储在浏览器中的 cookie 设置为在浏览器会话关闭时过期(即它没有设置 Expires 属性)。

如果我将空闲计时器设置为 10 秒或 1 分钟,它工作正常。但是,如果我将其设置为 5 分钟,则在服务器上我看到以下内容:

HttpContext.Current.User.Identity.IsAuthenticated的值为 false HttpContext.Current.User.Identity.Name的值为“空”

所以我无法获取当前登录的用户详细信息。

有任何想法吗?

4

2 回答 2

0

我注意到在我的 web.config 中,在 Authentication 节点下,超时也设置为 5 分钟,这似乎影响了它。因此,为什么它对于低于 5 分钟的任何请求都能正常工作。我将其更改为 30 分钟,乍一看似乎可以正常工作。

于 2012-07-19T15:25:06.017 回答
0

您可以尝试将用户的设置保留在 web.config 文件中,例如 isdebugmode、clientcode 并从那里获取。点网核弹也不是一个坏选择。

于 2012-07-19T16:18:52.963 回答