[CSharp]使用MSSOAPLib30调用WS的身份验证问题

在使用C#开发的动态生成Soap调用的程序中遇到了一个问题:
我的程序只能调用那些允许匿名访问的WS,不能访问那些集成Windows身份验证的WS。

我使用MSSOAPLib30来调用Soap,而且它支持填加身份验证的方法,可我还是没搞懂应该怎么用?试了n个方法了。

 1 using MSSOAPLib30 ;
 2 
 3 
 4 HttpConnector30Class    connector    =    new HttpConnector30Class() ;
 5 
 6 
 7 connector.set_Property("AuthUser", soapInfo.AuthUser);
 8 connector.set_Property("AuthPassword", soapInfo.AuthPassword);
 9 connector.set_Property("ConnectTimeout",soapInfo.ConnectTimeOut);
10 connector.set_Property("WinHTTPAuthScheme"0x01 | 0x02 | 0x08 | 0x10);
11 connector.set_Property("EndPointURL",soapInfo.WSDL.ToLower().Replace("?wsdl",""));
12 connector.set_Property("Timeout",soapInfo.RequestTimeOut);
13 
14 connector.Connect();
15 connector.ConnectWSDL( soapPort );
16 connector.BeginMessageWSDL( operation );
17 
18 
第10行中的定义我换了n种方法,可还是不行!

SDK中的例子是
1 Dim Connector As ISoapConnector
2 Set Connector = New HttpConnector30
3 Connector.Property("EndPointURL"= "some URL"
4 Connector.Property("SoapAction"= "a SOAP Action"

WinHTTPAuthScheme属性的说明
Enables you to choose acceptable an authentication mechanism. It applies only to clients running on Windows XP, Windows 2000 or Windows NT 4.0. These are the accetable values. You can combine these values (bitwise OR). 
0x1 - basic authentication
0x2 - ntlm auth
0x8 - digest auth
0x10 - negotiate auth
The default value for this property is 0x12 (ntlm and negotiate).

我应该怎样配置这个属性呢?

posted on 2006-03-28 11:12  徐中  阅读(1812)  评论(1编辑  收藏  举报

导航