2011-10-31 152 views
2

希望有人能帮助我。WSSE安全标头

我想调用这个Web服务
https://link.hertz.com/AuthenticationWebservice/authenticateAdmin?wsdl

我一直在说,我需要通过以下方式与网络服务身份验证:

username => "webServiceUserName" 
password => "webServicePassword" 
WSS-Password Type => "PasswordDigest" 

我使用一个asp.net 4.0应用程序,并且无法弄清楚如何将WSS-Password类型传递给我的Web服务调用。

我已经加入这项服务的网址为我的asp.net应用程序服务的参考,我用我的asp.net页面下面的代码:提前

service1.AuthenticateAdminClient myClient = new service1.AuthenticateAdminClient(); 
myClient.ClientCredentials.UserName.UserName = "webServiceUserName"; 
wsClient.ClientCredentials.UserName.Password = "webServicePassword"; 

myClient.authenticateAdminCredentials(myUserName, myPassword, myDomain); 

感谢,

Hari

回答

2

我们使用这个example它适用于我们。我们刚换了SecurityHeader中的这个“通用性”:

 if (PasswordType == PasswordType.Digest) 
     { 
      writer.WriteAttributeString("Type", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"); 
      writer.WriteString(ComputePasswordDigest(SystemPassword, nonce, created)); 
     } 
     else if (PasswordType == PasswordType.Text) 
     { 
      writer.WriteAttributeString("Type", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"); 
      writer.WriteString(SystemPassword); 
     } 
+0

嗨,首先感谢您的回复。我在我的代码中进行了更改以包含您的建议;但我收到了异常:

处理标头时发现错误。
不确定,现在要做? – Hari