我们的站点有一个针对国家/地区的 DropDownList 和一个针对语言的 DropDownList。 单击这些组合时,我们会将用户重定向到国家/语言特定的 url,例如 en-us.mysite.com
重定向发生在用户控件的 ButtonClick 中(UserControl 位于 MasterPage 中)但是当用户被重定向时,当我们在 global.asax 中检查它们时 session 变量被清除(在 newdomain 的请求中)
对于 Response.Redirect 函数中的“responseend”参数,无论是真还是假都会发生这种情况。
这是设计使然吗?
(顺便说一句,这是在本地主机上,子域在我机器上的主机文件中指定)
最佳答案
session 被清除,因为跟踪 session 的 cookie 丢失,因为您正在跨域。
所以是的 - 这是设计使然。不是 session 设计,而是 cookie 设计。
但我相信您可以允许在多个子域之间共享 cookie,如下所示:
Response.Cookies["domain"].Domain = "mysite.com";
Making it available to:
zh-cn.mysite.com
和
en-au.mysite.com
foo.mystie.com
etc
但这并不能解决您的问题,因为您无法控制 ASP.NET session cookie。
所以你必须实现你自己的自定义 session 机制,我还没有这样做所以不能真正提供太多帮助。
关于c# - asp.net:response.redirect 上的 session 清除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6477363/