【问题标题】:Does Response.Redirect use the same session or start a new one?Response.Redirect 是使用同一个会话还是开始一个新会话?
【发布时间】:2009-07-02 15:00:49
【问题描述】:

我希望在转移到另一个应用程序时能够使用相同的 Session 变量。

Response.Redirect 是使用同一个会话还是开始一个新会话?

我使用的是 c#,aspnet 3.5

【问题讨论】:

    标签: c# asp.net session response.redirect


    【解决方案1】:

    Response.Redirect 对会话不做任何事情。会话(通常)绑定到与 Web 应用程序的 URI 关联的 cookie。如果您切换到另一个服务器上的另一个 Web 应用程序或单独的 URI,即使您设法保留了 cookie,会话也不会继续。

    您能否说明您要解决的问题是什么?

    【讨论】:

    • 我正在尝试访问在 app2 中的 app1 中设置的值,而不是将其作为参数在 url 中明显传递。
    • 我认为这行不通。不过,你可以把它贴过来。
    • @Lill Lansey-如果是这种情况,您可能需要改写您的问题。
    【解决方案2】:

    Response.Redirect 向浏览器发送 Http Response,状态码为302 Found,标头为Location: {redirection-url}

    浏览器收到此响应,并知道在收到状态码为302 Found 的响应时向{redirection-url} 发送新请求。

    就是这样。

    Response.Redirect 不会启动或停止或与任何会话有任何关系。

    【讨论】:

      【解决方案3】:

      它使用相同的会话。

      编辑:假设新 URL 无论如何都会使用相同的会话。

      【讨论】:

        【解决方案4】:

        如果您尝试从其他应用程序访问会话变量,那么据我所知,那将无法正常工作。会话变量仅在一个应用程序内有效。

        如果您只是尝试重定向到同一应用程序中的另一个文件夹,则会话变量可用。

        如果这两个应用程序确实是分开的,您可以考虑将会话对象存储在数据库中,并使用 POST 或 url 参数将 sessionID 传递给新应用程序,但是,这些都不是很安全并离开应用程序在未采取适当措施确保用户身份的情况下对黑客开放。

        【讨论】:

        • 长期计划是使用握手安全地在应用程序之间传递信息,包括将信息存储在数据库中并传递 url 参数,但我现在只是在寻找一种方法来快速测试一些代码.
        猜你喜欢
        • 2019-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-23
        • 2012-04-19
        • 1970-01-01
        • 2014-05-25
        相关资源
        最近更新 更多