【发布时间】:2012-05-13 05:47:06
【问题描述】:
当您在 IE 中使用 Silverlight 中的 HyperlinkButton 控件以使用 TargetName="_blank" 在新窗口中打开链接时,新窗口是否具有与原始 IE 窗口相同的 cookie。如果没有,你如何让它拥有相同的 cookie?
【问题讨论】:
标签: silverlight internet-explorer hyperlink
当您在 IE 中使用 Silverlight 中的 HyperlinkButton 控件以使用 TargetName="_blank" 在新窗口中打开链接时,新窗口是否具有与原始 IE 窗口相同的 cookie。如果没有,你如何让它拥有相同的 cookie?
【问题讨论】:
标签: silverlight internet-explorer hyperlink
Windows 没有 cookie,HTTP 请求会有 cookie。请求中包含的 cookie 将由浏览器 cookie 缓存中的 cookie 和所请求的 URL 确定。
因此,在典型情况下,您通过 ASP.NET 应用程序的响应设置了应用程序 cookie,并且您打开一个新窗口以在同一应用程序中显示另一个 url,对该 url 的请求将携带先前设置的那些 cookie。
【讨论】:
当我说 Windows '有' cookie 时,我指的是浏览器在它的 cookie 缓存中的内容。看来,通过单击 SL HyperlinkButton 控件启动的浏览器缓存的内容已过时,即; JSESSIONID 来自上一个会话。现在,我们已经破解了它,因此我们调用 System.Windows.Browser.HtmlPage.Window.Invoke("openUri", someURL),其中 openUri 是一个调用 window.open(someUrl, "_blank") 的 JS 函数。看起来这里的不同之处在于,使用 SL 实现时,IE 的新实例会使用陈旧的缓存启动。通过 JS 实现,新窗口在同一进程下启动。有没有办法用超链接按钮模仿js实现?
【讨论】: