c# - asp.net:response.redirect 上的 session 清除?

标签 c# asp.net

我们的站点有一个针对国家/地区的 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/

相关文章:

javascript - JQuery 模态对话框表单回发问题

c# - 使用 ASP.NET Web API 2 获取具有动态参数过滤的资源

c# - "System.InvalidCastException: Specified cast is not valid"- 日期时间

asp.net - 遍历策略设计模式

c# - LINQ - 为匿名类型的只读属性赋值

c# - 如何覆盖 default(int?) 以获得 NULL 而不是 0

c# - 在 WPF 中打印隐藏窗口

c# - Silverlight:在用户关注文本框时立即验证?

asp.net - 错误 : EntitySet 'Building' that was specified in page markup does not exist on the Container

asp.net - Html文本编辑器问题