Как установить явный NetworkCredential для аутентификации на компьютере рабочей группы вместо домена

#web-services #dns #kerberos #networkcredentials #workgroup

#веб-сервисы #dns #керберос #сетевые возможности #рабочая группа

Вопрос:

Я использую следующую форму конструктора NetworkCredential для установки явных учетных данных перед вызовом веб-сервиса, для которого требуется определенное удостоверение:

 myWebService.Credentials = new System.Net.NetworkCredential(userName, password, domain);
 

Это отлично работает в наших средах разработки IIS 6.0 и IIS 7.5, где различные серверы являются частью нашего домена.

Теперь этот код был развернут в производственной среде, где серверы НЕ являются частью домена, а просто членами РАБОЧЕЙ ГРУППЫ, и надлежащая аутентификация не работает. Во время выполнения эта эффективная замена не выполняется:

 myWebService.Credentials = new System.Net.NetworkCredential("localuserName", "XyZ!XyZ", "myServerName");
 

У меня нет полного доступа к этим различным компьютерам рабочей группы, и системный администратор, который там все настроил, похоже, правильно настроил локальные учетные записи и пулы приложений.

Итак, вкратце, может ли использование вышеупомянутого метода продолжать работать в РАБОЧЕЙ ГРУППЕ, просто используя имя сервера вместо имени домена? Если код должен работать в любом случае, то должна быть какая-то другая проблема с конфигурацией, из-за которой мне придется искать дополнительную информацию о проблеме.

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

1. если вы считаете, что мой пост полезен, пожалуйста, отметьте его как ответ 🙂

Ответ №1:

 i'm using iis 7 and there is no problem with following:


1. find the ip address of machine which is running IIS and
find webservice bindings the bindings in IIS is like the following   http://192.368.228.1:8051/

2. set domain like this : http://servername:port/ or http://machine-ip:port/
also you can set webservice url like the following

        myWebService.Url ="http://192.368.228.1:8051/service1.asmx";
        myWebService.Credentials = new System.Net.NetworkCredential("user", "pass");

no domain is used in this way.
 

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

http://msdn.microsoft.com/en-us/library/ff649362.aspx#secnetch10_usingclientcertificates

надеюсь, это может быть полезно.