安全的WebService。

前几天测试了一下在WebService中使用Session的用法,WebService服务器端基本上比较简单,只是在WebService Method上面声明[WebMethod(EnableSession=true)],客户端稍微麻烦一点,需要保存这个Session对应的cookie(SessionID=“ASP.NET SessionID”),每次调用WebService的时候,把这个cookie加上,代码形如以下:
//全局变量声明
static System.Net.CookieContainer cookieSession = null;
//调用
   //new a WebService
   SessionTest.ServiceTestSession S = new TestSession.SessionTest.ServiceTestSession();   
   if (cookieSession == null)
    cookieSession = new System.Net.CookieContainer();
   S.CookieContainer = cookieSession;

可是,每次调用WebService之前都要写上这么几行,很是麻烦,后来我想到了一个方法,可以把这几句写到WebService的代理类的构造函数中去,那么就不用每次调用的时候再写这个了。当然也可以做一个继承于System.Web.Services.Protocols.SoapHttpClientProtocol的基类。
如果使用IE测试这个WebService,IE自动保存Session对应的cookie,无法测试出效果的。
还有一种是用SoapHead的方法,在《ASP.NET技术内幕》中详细介绍了,基本思路是先使用一个SSL的WebService Logon,返回一个自定义的SoapHead,然后客户端每次调用的时候,加入这个SoapHead,同样,服务器端每个WebMethod也要判断这个SoapHead。
现在有了WSE,WebService的安全有了更好的控制。
我才接触WSE,希望能够和大家讨论讨论WSE,我认为把WebService应用到P2P软件和网格计算上去是很有前途的。

原文链接:https://www.cnblogs.com/A1Y/archive/2005/03/12/117563.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18262

(0)
上一篇 2023年6月30日
下一篇 2023年6月30日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml