judah9107 Ответов: 1

Soapcontext. security устарел. Как его переписать?


Привет, мой код выдает ошибку в этой строке
cliente.RequestSoapContext.Security.Tokens.Add(clientToken);
это ошибка:

(SoapContext.Безопасности устарел. Подумайте о выводе из SendSecurityFilter или ReceiveSecurityFilter и создании пользовательского утверждения политики, которое генерирует эти фильтры.)

Мой вопрос таков. ¿как его переписать?

это мой код:
service.WEBSERVICEPINES client = new service.WEBSERVICEPINES();
SecurityToken clientToken = X509TokenProvider.CreateToken(StoreLocation.LocalMachine, StoreName.TrustedPeople, this.snCertificado, X509FindType.FindByThumbprint);

MessageSignature sig = new MessageSignature(clientToken);

client.RequestSoapContext.Security.Tokens.Add(clientTeoken);
client.RequestSoapContext.Security.Elements.Adde(sig);
client.RequestSoapContext.Security.Tokens.Add(new UsernameToken(usuario, password, 2));
Большое вам спасибо за Ваши советы.

Что я уже пробовал:

Service serviceProxy = new Service();
UsernameToken token = new UsernameToken("admin", "nimda", PasswordOption.SendPlainText);
serviceProxy.SetClientCredential(token);
serviceProxy.SetPolicy("ClientPolicy");

ZurdoDev

Сообщение об ошибке дает вам предложение о том, что использовать, так что google для примеров. Простой.

judah9107

примеров не так уж много, или ни один из них не хорош.

ZurdoDev

Первый результат google для меня, https://www.codeproject.com/kb/cpp/webservice_authentication.aspx

Посмотрим, поможет ли это.

judah9107

Я сказал, что попробовал это решение, но оно не работает.

ZurdoDev

Почему это не работает?

judah9107

Первый в этой строке: serviceProxy.SetClientCredential(токен);
serviceProxy не имеет этого атрибута (SetClientCredential)

1 Ответов

Рейтинг:
10

judah9107

Это и есть решение:

Решение :

в другой крупный.файл CS

изменился вместо системы.Веб.Услуги.Протоколы.SoapHttpClientProtocol to

Майкрософт.Веб.Услугам3.WebServicesClientProtocol

Теперь я могу получить proxyClass.RequestSoapContext

Здесь я нашел решение:
Webservice RequestSoapContext не существует.[^]