【问题标题】:calling asp.net mvc action method using jquery post method expires the session使用 jquery post 方法调用 asp.net mvc 操作方法使会话过期
【发布时间】:2010-04-09 10:39:55
【问题描述】:

我有一个网站,我提供了一个链接。单击该链接后,将调用控制器操作方法以在创建 zip 文件后生成一个 zip 文件,我通过将创建 zip 的链接替换为下载 zip 的链接来显示下载 zip 文件的链接。

问题是在 zip 文件创建结束并显示链接后,当用户单击链接下载 zip 文件时,他们会被发送到登录。在登录页面中提供正确的凭据后,系统会提示他们下载 zip 文件。他们不应该被发送到登录页面。在生成 zip 文件的操作中,我没有放弃会话或没有做任何放弃会话的事情。

在成功创建 zip 文件后,用户不应该被发送到登录页面,用户应该能够在没有登录的情况下下载文件。

我在网上搜索了这个问题,但我没有找到任何解决方案。在 hanselman 写的一篇博客中,我发现这个语句会导致会话出现问题:Ajax 调用或 IE 的 Content Advisor 之类的其他事情是否同时击中默认页面或登录页面并导致调用 Session.Abandon 的竞争条件? (以前发生过!)

所以我认为 ajax 调用可能存在导致会话过期的问题,但我不知道发生了什么?

任何帮助

谢谢

【问题讨论】:

  • 先尝试缩小问题范围。
  • 用户点击链接创建zip文件后是这样的,zip文件创建成功但会话过期。这不是我想要的。为什么在对控制器操作进行 jquery post 调用以创建 zip 文件后,会话必须过期?我希望你明白这个问题。

标签: jquery asp.net-mvc ajax action


【解决方案1】:

我认为问题在于您创建 Zip 文件的文件夹的权限。

【讨论】:

    【解决方案2】:

    伙计们,我找到了解决这个问题的方法。问题是这样的:我在应用程序文件夹中创建了一个 zip 文件,而在 .net 2.0 中,对应用程序文件和文件夹的任何更改都会导致会话过期。一旦我在应用程序文件夹中的目录以外的目录中创建了 zip 文件,一切正常。

    无论如何 谢谢

    【讨论】:

      【解决方案3】:

      Session 与访问资源无关。

      如果显示登录提示,则表示用户要下载的资源受 FormsAuthenication 或 WindowsAuthentication 保护。

      如果您不希望这样做,请检查 web.config 中的授权部分。

      【讨论】:

      • 即使不点击链接下载并点击网页上的其他链接,我也可以登录。
      • 这发生在您的本地开发网络服务器、本地 iis 还是生产网络服务器上?
      • 在 Visual Studio 和生产服务器上调试时都会发生这种情况。我已经托管了该网站,是的,它甚至在那里发生。
      • 在这篇文章hanselman.com/blog/… 的故障排除部分中,Scott Hanselman 写道:是否有其他东西,例如 Ajax 调用或 IE 的内容顾问同时点击默认页面或登录页面并导致调用会话.放弃? (以前发生过!)
      • 我正在使用 jquery post 方法调用控制器操作来创建 zip 文件。
      猜你喜欢
      • 2015-06-13
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 2017-06-16
      • 2011-01-02
      • 1970-01-01
      相关资源
      最近更新 更多