Заголовок безопасности WSSE

#web-services #wsse

#веб-службы #wsse

Вопрос:

Надеюсь, кто-нибудь сможет мне помочь.

Я пытаюсь вызвать эту веб-службу
https://link.hertz.com/AuthenticationWebservice/authenticateAdmin?wsdl

Мне сказали, что мне нужно передать следующую информацию для аутентификации с помощью веб-службы:

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

Я использую asp.net приложение 4.0 и не могу понять, как передать тип WSS-пароля для моего вызова веб-службы.

Я добавил этот URL-адрес службы в качестве ссылки на службу в моем 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);
 

заранее спасибо,

Хари

Ответ №1:

Мы использовали этот пример, и он работает для нас. Мы только что изменили его на «универсальность» в 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);
        }
 

Комментарии:

1. привет, прежде всего, спасибо за ответ. Я внес изменения в свой код, чтобы включить ваше предложение; но я получаю исключение: <br><br> Была обнаружена ошибка при обработке заголовка <wsse:Security>. <br> Не уверен, что теперь делать?