1

在我的 asp.net 应用程序中,HTTP会话在用户被重定向到登录页面的 30 分钟后超时。这是一个场景:

  1. 用户单击要编辑的项目,其 URL 如下所示:

    http://localhost/app/edit?id=1

  2. 用户在页面上进行某些更改以编辑 id=1 的项目,但不会“保存”它们 30 分钟。

  3. 在第 31 分钟,他点击保存,然后他被重定向到登录页面,如果他输入正确的凭据,我有一个返回 URL 可以重定向到该页面。

保留用户离开页面的状态的正确方法是什么?我所拥有的只是登录请求的返回 URL,它看起来像: http://localhost/app/edit.

单击保存会发出POST请求,但不会在查询字符串中传递任何内容。

我希望能够重定向到http://localhost/app/edit?id=1

4

2 回答 2

2

除非您专门构建了一种机制来在基于 ASP.NET 会话的状态机制之外保留状态,否则会话在超时时会丢失。从理论上讲,您可以构建一个状态系统,该系统在每个用户 ID 的基础上存储来自选定页面/输入的数据中间草稿,其中可以检索包含可能以这种方式“孤立”的数据的页面,但这也需要在那些被认为足够重要以保留更改否则由于超时而丢失的页面上,定期将数据后台保存回数据库。

于 2012-08-31T14:13:52.957 回答
0

当 POST 发生时,您拥有原始 URL,以及带有所有表单值的请求对象。

该请求将被拦截,并重定向到登录屏幕。此时,您需要保存原始 URL 和请求值,处理登录,然后使用原始值重定向到原始 URL。

您的 POST 请求是什么样的?是否有可以放入临时存储(会话等)的对象,或者您是否处理表单集合?

于 2012-08-31T14:13:41.693 回答