Учетные данные сетевой службы не передаются веб-службе - PullRequest
1 голос
/ 16 сентября 2011

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

Я проверил встроенную проверку подлинности Windows и отключил анонимный доступ в веб-службе. Я дал пользователю MACHINE_NAME $ права на чтение и выполнение каталога веб-службы (вероятно, не требуется).

Когда я вызываю веб-сервис с публичного сайта, это выглядит так:

var service = new WebService(ConfigurationManager.AppSettings["Url"]);
service.Credentials = CredentialCache.DefaultNetworkCredentials;
service.PreAuthenticate = true;

ServicePointManager.ServerCertificateValidationCallback = ValidateCertificate;
var result = service.CallWebService(str);

Я ожидал бы, что учетные данные учетной записи сетевой службы будут передаваться веб-службе и возвращать значение из CallWebService. Я получаю ошибку 401.

Я проверил журналы IIS, и при вызове метода веб-сервис делает три сообщения, но они не содержат учетные данные.

Я также проверил журналы событий безопасности, и при вызове метода происходит событие Failure Audit, которое выглядит примерно так:

Logon Failure:
    Reason:     An error occurred during logon
    User Name:  MACHINE_NAME$
    Domain:     DOMAIN_NAME
    Logon Type: 3
    Logon Process:  8e
    Authentication Package: NTLM
    ...
...