【发布时间】:2009-07-02 15:00:49
【问题描述】:
我希望在转移到另一个应用程序时能够使用相同的 Session 变量。
Response.Redirect 是使用同一个会话还是开始一个新会话?
我使用的是 c#,aspnet 3.5
【问题讨论】:
标签: c# asp.net session response.redirect
我希望在转移到另一个应用程序时能够使用相同的 Session 变量。
Response.Redirect 是使用同一个会话还是开始一个新会话?
我使用的是 c#,aspnet 3.5
【问题讨论】:
标签: c# asp.net session response.redirect
Response.Redirect 对会话不做任何事情。会话(通常)绑定到与 Web 应用程序的 URI 关联的 cookie。如果您切换到另一个服务器上的另一个 Web 应用程序或单独的 URI,即使您设法保留了 cookie,会话也不会继续。
您能否说明您要解决的问题是什么?
【讨论】:
Response.Redirect 向浏览器发送 Http Response,状态码为302 Found,标头为Location: {redirection-url}。
浏览器收到此响应,并知道在收到状态码为302 Found 的响应时向{redirection-url} 发送新请求。
就是这样。
Response.Redirect 不会启动或停止或与任何会话有任何关系。
【讨论】:
它使用相同的会话。
编辑:假设新 URL 无论如何都会使用相同的会话。
【讨论】:
如果您尝试从其他应用程序访问会话变量,那么据我所知,那将无法正常工作。会话变量仅在一个应用程序内有效。
如果您只是尝试重定向到同一应用程序中的另一个文件夹,则会话变量可用。
如果这两个应用程序确实是分开的,您可以考虑将会话对象存储在数据库中,并使用 POST 或 url 参数将 sessionID 传递给新应用程序,但是,这些都不是很安全并离开应用程序在未采取适当措施确保用户身份的情况下对黑客开放。
【讨论】: