2010-10-14 7 views
1

Я пытаюсь подключиться к службе, доступной по https и нуждающейся в аутентификации.WCF-клиент с аутентификацией ssl и имени пользователя/пароля

Ошибки я получаю:

Test method TestProject1.UnitTest1.TestReharB2B threw exception: System.ServiceModel.Security.MessageSecurityException: The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Basic realm="Application"'. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized..

Это кажется мне, что имя пользователя и пароль не передается в службу. Что мне не хватает?

Код:

EndpointAddress address = new EndpointAddress(
        new Uri("https://84.52.158.151:8443/JavaStore/services/B2BService"), 
         EndpointIdentity.CreateDnsIdentity("JavaStore"), 
         new AddressHeaderCollection() 
       ); 

BasicHttpBinding binding = new BasicHttpBinding(); 
binding.Security.Mode = BasicHttpSecurityMode.TransportWithMessageCredential; 
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName; 

var client = new ReharB2BService.B2BServicePortTypeClient(binding, address); 

client.ChannelFactory.Credentials.UserName.UserName = "dotNet"; 
client.ChannelFactory.Credentials.UserName.Password = "dotnetpwd"; 

client.Open(); 
client.getAllItems(); 

ответ

2

Ваша служба возвращает ошибку, потому что есть некоторая расконфигурация между сервером и клиентом. Ваш клиент использует транспортную безопасность с учетными данными сообщения UserName. Это означает, что HTTPS используется, и сообщение содержит заголовок SOAP с именем пользователя и паролем. Но ваша служба возвращает исключение, потому что она (вероятно, IIS) ожидает безопасности на транспорте с базовыми учетными данными. Это означает HTTPS и HTTP-аутентификацию (HTTP-заголовок).

Смежные вопросы