2

希望有人可以帮助我。

我正在尝试调用此 Web 服务
https://link.hertz.com/AuthenticationWebservice/authenticateAdmin?wsdl

有人说我需要传递以下信息以通过 Web 服务进行身份验证:

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

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

我已在我的 asp.net 应用程序中将此服务 url 添加为服务引用,并且我在我的 asp.net 页面中使用以下代码:

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

myClient.authenticateAdminCredentials(myUserName, myPassword, myDomain);

提前致谢,

哈里

4

1 回答 1

2

我们使用了这个例子,它对我们有用。我们只是在 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);
        }
于 2011-10-31T12:25:08.343 回答