我要做一个ActiveX控件,该控件应当可以访问服务器端的页面(假设是asp.net页面)。我知道要访问服务器端的页面要使用wininet API,但我不知道怎样做才能让控件使用其所在页面的会话。经过研究我知道IE在初次访问一个网站时,服务器端会在给IE的响应头中包含一个"Set-Cookie"项,这里面包含了session id, IE会把这个session id 作为进程内Cookie放在内存里。后来我又知道通过wininet的InternetGetCookie不能取得IE放在内存里的那个Cookie,因为那个Cookie是Http-only的,为安全起见,微软故意让其他程序不能通过InternetGetCookie取得这个Cookie. 也就是说那个Cookie是取不到的。
于是我产生了2个疑问:一是IE插件HttpWatch是如何取得这个Cookie的?
二是如果真不能取得那个Cookie,那么也就是说网页和应用程序是不能共享Session了?