gpt4 book ai didi

wcf - 需要一个 "SOAP Client with WSSE authentication"... Visual Studio 是否满足这个需求?

转载 作者:行者123 更新时间:2023-12-04 16:45:56 25 4
gpt4 key购买 nike

我需要连接的 Web 服务具有上述要求。我可以在 VS 2008 中使用此 Web 服务,但无法使用它,因为我不知道如何进行身份验证。我需要指定 credentails,但是没有公开“header”方法。我尝试过类似以下的方法:

UltraDNSWebReference.UltraWebServiceService clientProxy = 
new UltraDNSWebReference.UltraWebServiceService();

clientProxy.Credentials = new System.Net.NetworkCredential(
"MyUserName", "MYPassword");

但我仍然收到身份验证错误。我可以使用 SOAPUI 测试平台成功连接,所以我知道这不是错误的凭证或被阻止的 IP。

此 WebService API 声明:

The Neustar Ultra Services API authenticates a user and requests with a WSSE UserName token in a SOAP header.

我可以在 Visual Studio 中使用这个网络服务吗???

我试过添加服务引用。我可以成功使用 WSDL 并创建一个对象,但不知道如何提供身份验证。例如,我尝试了以下方法:

//Create client object  
ServiceReference1.UltraDNSClient client = new ServiceReference1.UltraDNSClient();
client.ClientCredentials.UserName.UserName = "myUserName";
client.ClientCredentials.UserName.Password = "myPassword";

所以,上面我有我的客户端对象,这个对象可以访问 API 中的所有方法。但是,我不能使用任何方法,因为我没有正确验证。 API 不提供任何类型的“header()”类型的方法。例如,对于我使用的另一个 Web 服务(是的,它使用了添加 Web 引用,但概念保持不变):

//Use the Web Reference to create the header object
StockLogoWebService.Header headerObject = new StockLogoWebService.Header();

//Assign the username (Username is all Xignite requires for authentication)
headerObject.Username = "janedoe@yahoo.com";

//Assign this header to the proxy object
xLogogsTest.HeaderValue = headerObject;

//Use any exposed methods
xLogosTest.anyMethod()

上面我使用了 header() 方法来指定我的凭据。如果 WSDL 不提供 header 方法,而只是声明必须在 SOAP header 中提供凭据,那么如何在 Visual Studio 中实现这一点?

WSDL 可以在以下位置找到:

http://ultra-api.ultradns.com:8008/UltraDNS_WS?wsdl

最佳答案

您可以在网络/应用程序配置中将 WSSE 安全 header 添加到您的服务端点:

 <system.serviceModel>
<bindings>
<customBinding>
<! -- your binding details -->
</customBinding>
</bindings>
<client>
<endpoint <your endpoint details>>
<headers>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" mustUnderstand="1">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-1">
<wsse:Username></wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</headers>
</endpoint>
</client>
</system.serviceModel>

关于wcf - 需要一个 "SOAP Client with WSSE authentication"... Visual Studio 是否满足这个需求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com