Ошибка «NT AUTHORITY \ ANONYMOUS LOGON» в Windows 7 (ASP.NET и веб-служба) - PullRequest
2 голосов
/ 10 июня 2010

У меня есть веб-приложение asp.net, которое отлично работает на компьютере с Windows XP в домене. Я портирую его на отдельную машину с Windows 7. Приложение использует веб-сервис, который выполняет вызов к серверу sql. Веб-сервер (IIS 7.5) и SQL Server находятся на одном отдельном компьютере.

Я включил проверку подлинности Windows для веб-сайта и веб-службы. Веб-служба использует строку подключения доверенного соединения. Учетные данные веб-службы используют System.Net.CredentialCache.DefaultCredentials. Я заметил, что имя пользователя, пароль и имя домена остаются пустыми после звонка! Веб-сервис и веб-сайт используют «Классический .NET AppPool» с идентификатором NetworkServices.

Я получаю исключение "NT AUTHORITY \ ANONYMOUS LOGON" при вызове базы данных в веб-службе. Я предполагаю, что это связано с пустыми учетными данными.

Я ожидаю, что пользователь ASPNET будет маркером безопасности для базы данных. Почему этого не происходит? Я пропустил настройку? (Обычно это происходит, когда sql-сервер и веб-сервер находятся на двух разных машинах в домене, делегирование и двойное переключение, но в моем случае все находится на устройстве dev)

Ответы [ 2 ]

1 голос
/ 03 января 2011

Звучит так, как будто вы столкнулись с проблемой «двойного прыжка».По сути, это означает, что вам не разрешено пересылать клиентские привилегии третьей стороне, обычно серверу sql на другом компьютере.

Я ответил раньше, возможно, этот ответ будетпомочь вам в дальнейшем.

0 голосов
/ 03 января 2011

Ваша проблема связана с передачей правильных учетных данных на сервер SQL веб-службой.

Существует несколько уровней безопасности, которые необходимо проверить.Но первое и самое простое - убедиться, что вы отключили все средства безопасности, кроме Windows Integrated.IIS всегда будет использовать самый простой протокол безопасности.Так что если у вас включены Anonymous и Windows Integrated, то ваш веб-сайт всегда будет выбирать Anonymous.

Далее каждый сайт в IIS7 + запускается в пуле приложений, который может иметь отдельную защиту.Кроме того, все службы IIS Windows работают под определенной учетной записью.

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

Еще одна вещь, которую я хотел бы проверить, - это именованные каналы в SQL.Мои знания невелики, но я знаю, что именованные каналы могут использоваться для связи на одном сервере между различными приложениями, причем IIS и SQL являются двумя из них.

Если каналы имен отключены через диспетчер конфигурации SQL, тогдаЯ бы ожидал другую ошибку, но ее стоит включить.

Надеюсь, это поможет.Майк

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