我有以下架构:
1)客户端登录到ASP.NET网站(www.site.com),其中会话在3000分钟后过期,cookieless设置为false。
2)一段时间后,客户端在浏览器中打开Activex。 Activex通过.NET托管类连接到Session Enabled Web Service(www.site.com/Service.asmx)。
我需要做的是发送通过网站验证后收到浏览器的cookie。如果此类cookie不存在,则用户未经过身份验证,并且将禁止与Web服务的连接。
我知道我需要使用System.Net.CookieContainer类,但是如何将这个更大的cookie设置为此类?
localhost.WebService1 web = new localhost.WebService1();
System.Net.CookieContainer cookie = new System.Net.CookieContainer();
web.CookieContainer = cookie;
让我进入全新的环节。
请帮忙。
祝你好运, 丹尼。
答案 0 :(得分:1)
ActiveX控件是一个完全独立的过程,每次都会创建自己的会话。即使它使用与其容器相同的浏览器,它基本上像运行单独的应用程序来连接到Web服务。为了解决这个问题,一个想法是将某种时间敏感的密钥/ Guid传递给ActviceX控件(通过javascript发送到ActiveX控件)这个密钥(保存在数据库中,由页面创建)可以传递给WebService并验证了吗?