如何在Internet Explorer和网页中托管的ActiveX组件之间共享会话cookie?

jer*_*rem 5 .net cookies internet-explorer activex com-interop

我目前正在开发一个.Net应用程序,该应用程序向IIS服务器上托管的某些Web应用程序发出HTTP请求.该应用程序通过ClickOnce部署,在简单的网络架构上运行良好.
我们的一个客户拥有一个非常复杂的网络,涉及一个自定义身份验证服务器,用户首先需要自己进行身份验证,以便进行身份验证并访问此网络上的其他应用程序.在此服务器上进行身份验证后,将创建会话cookie并将其发送给用户.每次用户在网络的安全服务器上发出请求时,都会检查此cookie以授予用户访问权限.如果此cookie未随请求一起发送,则会将用户重定向到登录页面.唯一使用的浏览器是Internet Explorer.
这个cookie无法从我们的.net应用程序访问,因为它是在用于登录用户的Internet Explorer进程之外的另一个进程中执行的,因此不会随我们的请求一起发送,由于服务器重定向每个请求,因此无法完成我们对登录页面的请求.
通过使主控件COM可见并在带有标签的HTML页面上创建它,我看了一下将我的应用程序嵌入到Internet Explorer中.它工作正常,但是当ActiveX控件发出Web请求时,不会发送浏览器中先前设置的会话cookie.
我希望这种会话信息的共享是自动的(虽然我真的不相信).所以我的问题是:是否可以在嵌入式ActiveX中访问此cookie?怎么样?使用.Net COM-interop组件而不是"真正的"ActiveX控件会有所不同吗?此外,是否有特定的安全词来描述这种行为(鉴于我根本不是安全主题的专家,缺乏适当的术语使得找到所需的资源变得更加困难)?

我的目标是让我的应用程序的请求看起来与主机浏览器的请求所做的请求相同,我认为将应用程序作为ActiveX控件嵌入到浏览器中是实现此目的的唯一方法,但是对于另一个要做的任何建议都是如此这是受欢迎的.

jer*_*rge 2

我发现实现此目的的一种方法是让 ActiveX 组件嵌入 Internet Explorer 组件(WebBrowser 对象),并使用它来执行我的 http 请求,而不是标准类对象。通过执行此操作,Internet Explorer 中设置的会话 cookie(甚至仅包含 http 的会话 cookie)可供嵌入式 Internet Explorer 使用,并随每个请求自动发送。