powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Сервер отклонил учетные данные клиента.
24 сообщений из 24, страница 1 из 1
Сервер отклонил учетные данные клиента.
    #36403773
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Протокол net.tcp
Клиент и сервер разнесены (разные компы, разные страны!)

При попытке подключения клиента к серверу лезет эксепшен
Код: plaintext
Сервер отклонил учетные данные клиента.
Что за учетные данные? В каких случаях такое сообщение генерится?
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36404102
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поборол. Была аутентификация Windows. Снял. Сделал так:
Код: plaintext
1.
2.
3.
                    <security mode="Transport">
                      <transport clientCredentialType="None" />
                      <message clientCredentialType="None" />
                    </security>

Теперь вылез другой ексепшен:
Код: plaintext
Не удается активировать запрошенную службу

Уж не знаю, почему...
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36404134
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настройка безопасности транспортного уровня требует чето-то такого, на основе которого должен шифроваться трафик. (Это я так думаю). Но этого такого у меня нет, ни сертификата ни авторизации Windows. Подтому пока снял безопасность вообще
Код: plaintext
1.
2.
3.
                  <security mode="None">
                    <transport clientCredentialType="None" protectionLevel="None" />
                    <message clientCredentialType="None" />
                  </security>

Так пошло поехало. Теперь буду думать о том, как все же трафик закодировать.
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36865227
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытался разобраться с безопасностью для служб WCF и дочитался МСДН-а до полной каши в голове.
Создал WCF-сервис, который хостится в службе Windows.
Со стороны клиента написано
Код: plaintext
1.
2.
3.
NetTcpBinding binding = new NetTcpBinding(SecurityMode.Transport);
EndpointAddress endPointAddress = new EndpointAddress("net.tcp://biz:8000/AdminService");
ChannelFactory<IAdminService> myChannelFactory = new ChannelFactory<IAdminService>(binding, endPointAddress);
adminService = myChannelFactory.CreateChannel();

Со стороны сервера
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
adminServiceHost = new ServiceHost((typeof(AdminService)), new Uri("net.tcp://localhost:8000/AdminService"));

NetTcpBinding binding = new NetTcpBinding(SecurityMode.Transport);

ServiceEndpoint endPoint = adminServiceHost.AddServiceEndpoint(typeof(IAdminService), binding, "");

ServiceMetadataBehavior metadataBehavior = new ServiceMetadataBehavior();
adminServiceHost.Description.Behaviors.Add(metadataBehavior);

ServiceSecurityAuditBehavior auditBehavior = new ServiceSecurityAuditBehavior();
auditBehavior.AuditLogLocation = AuditLogLocation.Application;
auditBehavior.MessageAuthenticationAuditLevel = AuditLevel.SuccessOrFailure;
auditBehavior.ServiceAuthorizationAuditLevel = AuditLevel.SuccessOrFailure;
adminServiceHost.Description.Behaviors.Add(auditBehavior);

adminServiceHost.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexTcpBinding(), "mex");

adminServiceHost.Open();

и не могу теперь соединится со своей службой (при SecurityMode.None все работает норм).
Как я смутно догадываюсь теперь нужно где-то указать какие-то Identity у адресов конечных точек. Но что это и где его взять?
Не могли бы вы внести небольшой порядок в бардак в моей голове?
Для начала не совсем ясно с Behaviors. Как я вижу их можно задавать и для службы в целом и для каждой конечной точки. А как понять какое поведение будет использоваться?
С учетными данными вообще каша в голове. Они задаются и для службы и для конечных точек? Покажите пожалуйста на пальцах как в моем примере организовать безопасную коммуникацию на уровне транспорта между клиентом и сервером без использования сертификатов.
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36867925
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переделал клиента. Теперь он выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
NetTcpBinding binding = new NetTcpBinding(SecurityMode.Transport);
//binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;

NetworkCredential credential = new NetworkCredential();
credential.Domain = "MyServer";
credential.UserName = "MyUser";
credential.Password = "MyPass";
EndpointAddress endPointAddress = new EndpointAddress("net.tcp://biz:8000/AdminService");

adminService = new MyProduct.PresentationLayer.AdminServiceReference.AdminServiceClient(binding, endPointAddress);
adminService.ClientCredentials.Windows.AllowNtlm = true;
adminService.ClientCredentials.Windows.ClientCredential = credential;

Все равно не работает. Что нужно указывать в
Код: plaintext
1.
2.
credential.Domain = "MyServer";
credential.UserName = "MyUser";
credential.Password = "MyPass";
если сама служба работает от имени локальной системы? Может правильно будет ее запускать от имени какого либо пользователя сервера? (а будет ли она запущена если этот пользователь не залогинился на сервере?)
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36869219
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И тишина!
Не верю что никто не знает в чем причина! :)
Ведь наверняка причина проста. Может в настройках службы тоже нужно указывать какие-то данные?
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36878211
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сознавайтесь!!!
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36879624
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxxbinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;
Windows != Ntlm
Windows - это проверка доменной (а не локальной) учетки, протокол Kerberos.

(либо использовать доменную учетку, либо делать TcpClientCredentialType.None, либо другой биндинг, например Http, там есть HttpClientCredentialType.Ntlm, либо...)
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36879633
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRLexxxxxbinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;
Windows != Ntlm
Windows - это проверка доменной (а не локальной) учетки, протокол Kerberos.

(либо использовать доменную учетку, либо делать TcpClientCredentialType.None, либо другой биндинг, например Http, там есть HttpClientCredentialType.Ntlm, либо...)

Да, но там ведь adminService.ClientCredentials.Windows.AllowNtlm = true; (он и по умолчанию включен)
Доменная учетка не катит, так как машины могут быть совсем в разных доменах и не в доменах вообще. Привязка нужна именно tcp. И просто TcpClientCredentialType.None не подходит, так как нужно ограничит доступ к службе. Люди говорят что это возможно, но никто не говорит что как. Параметр adminService.ClientCredentials.Windows.AllowNtlm = true мне как бы намекает что можно, но что куда писать никак не соображу.
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36879643
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и
Код: plaintext
1.
2.
credential.Domain = "MyServer";
credential.UserName = "MyUser";
credential.Password = "MyPass";

в

Код: plaintext
1.
adminService.ClientCredentials.Windows.ClientCredential

ведь можно зачем-то писать? Значит можно как-то это сделать?
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36879657
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxДа, но там ведь adminService.ClientCredentials.Windows.AllowNtlm = true; (он и по умолчанию включен)Да, действительно...

Ну а с TcpClientCredentialType.None работает?
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36879674
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRНу а с TcpClientCredentialType.None работает?
Да, так все работает нормально.
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36879723
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxДа, так все работает нормально.А если попробовать доменную учетку, будет работать? Т.е.
Код: plaintext
1.
2.
3.
credential.Domain = "MyDomain";
credential.UserName = "MyUser";
credential.Password = "MyPass";
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36879739
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRLexxxxxДа, так все работает нормально.А если попробовать доменную учетку, будет работать?

У меня нет домена. Есть комп (MyComp) с клиентом, на котором из под учетки Ivanov выполняется клиент службы. На сервере (Biz) запущена служба от имени локальной системы. Так же на червере есть пользователь Ivanov с таким же паролем (vvv) как и на клиенте. Пробовал прописывать
Код: plaintext
1.
2.
3.
credential.Domain = "Biz";
credential.UserName = "Ivanov ";
credential.Password = "vvv";

Не работает. Пробовал запускать на сервере службу от имени Ivanov. Тоже не помогло. Не могу понять "кто на ком стоять должен". Или служба от имени этого иванова должна работать () что не помогло), или какого ей еще рожна надо!
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36879744
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxx,

а какая ошибка?
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36879769
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Сервер отклонил учетные данные клиента. "
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36880598
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот этот пример (в аттаче) будет работать? (у меня работает)
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36881335
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRА вот этот пример (в аттаче) будет работать? (у меня работает)

Еще вспомнил что когда служба и клиент крутились на одной машине все работало. Когда я унес службу на виртуалку (Biz), начались исключения "Сервер отклонил" и пришлось сделать SecurityMode.None (когда я говорил что с TcpClientCredentialType.None работает нормально, я перепутал с SecurityMode.None. Завтра проверю как оно будет с TcpClientCredentialType.None).

По Вашему примеру. Сначала не удалось запустить его по причине того, что служба не имеет прав на указанный урл. Переписал
Код: plaintext
1.
ServiceHost host = new ServiceHost(typeof(MyService),new Uri("http://localhost:8000/"));

на

Код: plaintext
1.
ServiceHost host = new ServiceHost(typeof(MyService), new Uri("net.tcp://localhost:8000/"));
(не пойму, зачем указан Uri("http://localhost:8000/") если используется привязка тср?)
Тогда запустилось, но при вызове метода "Сервер отклонил..."
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36881373
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxx(не пойму, зачем указан Uri("http://localhost:8000/") если используется привязка тср?)
Тогда запустилось, но при вызове метода "Сервер отклонил..."
а я и не заметил :) пример взят с www.idesign.net , я подправил лишь конфиги - добавил
Код: plaintext
1.
2.
3.
4.
<binding name="NetTcpBinding">
                   <security mode="Transport">
                       <transport clientCredentialType="Windows" />
...
в конечном счете WCF конфигурится из конфигов (и на сервере и на клиенте), т.е.
Код: plaintext
1.
2.
            <endpoint address="net.tcp://localhost:8001/MyService" binding="netTcpBinding" bindingConfiguration="NetTcpBinding"
                      contract="MyNamespace.IMyContract"/>
и эта, видимо, оплошность с Uri("http://localhost:8000/") не должна быть причиной "Сначала не удалось запустить его по причине того, что служба не имеет прав на указанный урл" (по-крайней мере у меня это ни на чем не сказалось)

Зато была проблема с тем что на серверной ОС был включен "Use simple file sharing" (проверьте, эта опция должна быть отключена, иначе будет ошибка типа "A remote side security requirement was not fulfilled during authentication. Try increasing the ProtectionLevel and/or ImpersonationLevel.")

Вот с виртуалкой не пробовал (подозреваю, проблем там может быть...)
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36881403
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LR
и эта, видимо, оплошность с Uri("http://localhost:8000/") не должна быть причиной "Сначала не удалось запустить его по причине того, что служба не имеет прав на указанный урл" (по-крайней мере у меня это ни на чем не сказалось)
Она это и есть. Там в подробностях исключения есть ссылка на страницу, на которой указано как в командной строке зарегистрировать урл для службы. Но это не наш случай, так что я думаю на это пока отвлекаться не стоит.

LR
Зато была проблема с тем что на серверной ОС был включен "Use simple file sharing" (проверьте, эта опция должна быть отключена, иначе будет ошибка типа "A remote side security requirement was not fulfilled during authentication. Try increasing the ProtectionLevel and/or ImpersonationLevel.")
Вот с виртуалкой не пробовал (подозреваю, проблем там может быть...)
А вот "Простой доступ к файлам" не проверял. В качестве "серверной ос" на виртуалке стоит ХР Про СП3, и по умолчанию простой доступ там вроде включен. Правда ошибок, подобных указанной Вами, не встречал. Завтра проверю что там и как с шарингом.
Но не ясно пока чего не заводится ваш пример, хотя толком разбираться лень, спать хочется. Завтра утром буду продолжать разборы.
Спасибо Вам за содействие!
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36881624
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRЗато была проблема с тем что на серверной ОС был включен "Use simple file sharing" (проверьте, эта опция должна быть отключена, иначе будет ошибка типа "A remote side security requirement was not fulfilled during authentication. Try increasing the ProtectionLevel and/or ImpersonationLevel.")

ВОТ ТУТ СОБАКА И ПОРЫЛА!!! Правда текст ошибки был как название темы. Но как только я отключил "Простой доступ..." так все и заработало! Оказалось что на "сервере" достаточно иметь не отключенную учетку (правда у меня она с правами админа. с правами буду чуть позже разбираться) пользователя. В credential нужно указать имя компа со службой и логин с паролем этой учетки. Все это сводит Windows аутентификацию к проверке по логину и паролю, которая по доке МС якобы не поддерживается привязкой NetTcpBinding :)

СПАСИБО ВАМ ОГРОМНОЕ!!!
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36881637
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxx (правда у меня она с правами админа. с правами буду чуть позже разбираться)

Похоже права в моем случае роли не играют, так как работает даже если цепляешься к учетке с правами "Гости". А это тоже не очень хорошо. А как бы ограничить подключение к группе допустим какой либо группой пользователей?
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36881810
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxА как бы ограничить подключение к группе допустим какой либо группой пользователей?
как вариант - указать в PrincipalPermissionAttribute параметр Role
Код: plaintext
1.
2.
       [PrincipalPermission(SecurityAction.Demand, Role = "Администраторы")]
       public void MyMethod()
но вот как задать для всего сервиса, х.з. (PrincipalPermissionAttribute прицепленный к class MyService : IMyContract приводит к ошибке, запаздывает аутентификация?...)

Lexxxxxпо доке МС якобы не поддерживается привязкой NetTcpBinding :)ну, в доке сказано, что если керберосом не получается и AllowNtlm = true, то тады Ntlm (но везде подчеркивается, что керберос - надежная защита, а Ntlm - нет)
...
Рейтинг: 0 / 0
Сервер отклонил учетные данные клиента.
    #36909155
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRно вот как задать для всего сервиса, х.з. (PrincipalPermissionAttribute прицепленный к class MyService : IMyContract приводит к ошибке, запаздывает аутентификация?...)
Придумал вариант и описал тут .
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Сервер отклонил учетные данные клиента.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]