Установить ClientCredentials без использования прокси? - PullRequest
1 голос
/ 06 июня 2011

Можно ли установить ClientCredentials без использования сгенерированного прокси? Я видел кое-что об использовании ChannelFactory, но возможно ли это сделать и без этого?

Ответы [ 2 ]

4 голосов
/ 11 апреля 2012

Вот пример кода:

EndpointAddress endpointAddress = new EndpointAddress("http://localhost:8888/TestSevice");
WSHttpBinding wsHttpBinding = new WSHttpBinding();
ChannelFactory<ISomeServiceInterface> iFactory = new ChannelFactory<ISomeServiceInterface>(wsHttpBinding, endpointAddress);

var clientCredentials = new ClientCredentials();
clientCredentials.UserName.UserName = "sudipto";
clientCredentials.UserName.Password = "sudipto";

iFactory.Endpoint.Behaviors.RemoveAll<ClientCredentials>();
iFactory.Endpoint.Behaviors.Add(clientCredentials);

var isomeService= iFactory.CreateChannel();
isomeService.SomeFunctionToCall("parameterToTheService");
4 голосов
/ 07 июня 2011

Чтобы вызвать службу WCF от клиента, вам нужен прокси-сервер (если вы не хотите сами жестко закодировать запрос SOAP, что не так-то просто сделать, особенно если вы работаете с безопасностью).Прокси-сервер можно создать либо с помощью одного из инструментов для создания прокси (Добавить ссылку на службу, svcutil и т. Д.), Либо с помощью ChannelFactory<T>.Если вы используете сгенерированный прокси, вы будете использовать свойство ClientCredentials прокси (унаследованное от базового класса ClientBase<T>. Если вы используете ChannelFactory<T>, вы установите их в свойстве Credentialsканальный завод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...