我希望能够在转移到另一个应用程序时使用相同的Session变量。
Response.Redirect是否使用相同的会话或启动新的会话?
我正在使用c#,aspnet 3.5
答案 0 :(得分:6)
Response.Redirect
对会话无效。会话(通常)绑定到与Web应用程序的URI关联的cookie。如果您切换到另一台服务器上的另一个Web应用程序或单独的URI,即使您设法保留cookie,该会话也不会继续。
你能澄清一下你试图解决的问题吗?
答案 1 :(得分:4)
Response.Redirect
向浏览器发送Http响应,状态代码为302 Found
,标题为Location: {redirection-url}
。
浏览器收到此回复,并知道在收到状态代码为{redirection-url}
的回复时向302 Found
发送新请求。
这就是发生的一切。
Response.Redirect
不会启动或停止或与任何会话有任何关系。
答案 2 :(得分:1)
它使用相同的会话。
编辑:假设新网址无论如何都会使用相同的会话。
答案 3 :(得分:0)
如果您尝试从不同的应用程序访问会话变量,那么就我记得那样无法工作。会话变量仅在一个应用程序中有效。
如果您尝试重定向到同一应用程序中的另一个文件夹,则会话变量可用。
如果两个应用程序确实是分开的,您可以查看将会话对象存储在数据库中并使用POST或url参数将sessionID传递给新应用程序,但是,这些都不是非常安全并且离开应用程序如果没有采取适当的谨慎措施以确保用户身份,就会遭受黑客攻击。