我试图在用户点击链接按钮时从代码后面打开一个新窗口,但我的应用程序cookie和会话被杀死,因为用户无法在请求页面上执行任何操作,但我可以正确地看到窗口的响应URL。为什么会发生这种情况,在回复期间我没有对cookie做任何事情。我使用了以下帖子Response.Redirect to new window
string url = "XYZ"
string target = "";
string windowFeatures = "menubar=0,scrollbars=1,width=780,height=900,top=10";
script = @"window.open(""{0}"", ""{1}"", ""{2}"");";
script = String.Format(script, url, target, windowFeatures);
ScriptManager.RegisterStartupScript(page, typeof(Page), "Redirect", script, true);
答案 0 :(得分:0)
您的会话实际上存储在一个asp.net cookie中,因此我认为您的cookie在新窗口中无效。
出于某种原因,您的网址是否有所不同? Cookie不会跨域共享,因此如果您的主应用位于" 123.com"而且您的新窗口位于" XYZ.com",他们无法访问彼此的Cookie。这意味着没有会话等。
如果您不在不同的域名,那么还有其他事情(特定代码)会消除您的Cookie。例如,如果由于某种原因,您的新窗口在不同的浏览器中打开(这将需要一些有趣的代码)或者您的浏览器正在擦除cookie。
如果您需要更多帮助,请发布更多代码,以便我们获得更多背景信息。