将浏览器cookie发送到Web服务

时间:2010-02-13 23:05:23

标签: asp.net web-services authentication cookies

我有以下架构:

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;

让我进入全新的环节。

请帮忙。

祝你好运, 丹尼。

1 个答案:

答案 0 :(得分:1)

ActiveX控件是一个完全独立的过程,每次都会创建自己的会话。即使它使用与其容器相同的浏览器,它基本上像运行单独的应用程序来连接到Web服务。为了解决这个问题,一个想法是将某种时间敏感的密钥/ Guid传递给ActviceX控件(通过javascript发送到ActiveX控件)这个密钥(保存在数据库中,由页面创建)可以传递给WebService并验证了吗?