Аутентификация Windows в ASP.NET - ошибка входа для пользователя 'NT AUTHORITY / ANONYMOUS LOGON' - PullRequest
1 голос
/ 29 октября 2019

Это мое первое веб-приложение (ASP.NET MVC), и у меня возникают проблемы, надеюсь, кто-нибудь может мне помочь. Я пытаюсь заставить работать проверку подлинности Windows, но продолжаю получать следующую ошибку после развертывания проекта в IIS:

Ошибка входа для пользователя 'NT AUTHORITY \ ANONYMOUS LOGON'.

SqlException (0x80131904): Не удалось войти в систему для пользователя 'NT AUTHORITY \ ANONYMOUS LOGON'

За последние пару дней я провел небольшой поиск по этому вопросу, но, похоже, не могу понять,чего мне не хватаетЗапуск в Visual Studio, я не получаю эту ошибку.

В моем файле Web.config у меня есть следующий набор:

<authentication mode="Windows" />
<identity impersonate="true"/>

Для сервера это Win Server 2016 Datacenter с IIS v10.

В моем пуле приложений у меня есть следующий набор: Identity - ApplicationPoolIdentity Загрузить профиль пользователя - True

Для веб-сайта у меня включены следующие аутентификации: ASP.NET Impersonation Windows Аутентификация с расширеннымДля защиты установлено значение «Принять», а поставщики - NTLM наверху, а «Согласовать» - внизу.

Все рабочие станции, SQL Server и IIS-сервер находятся в одном домене.

Моя строка подключения настроена следующим образом:

Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=FOO;Data Source=SERVER\\DB; Encrypt=true; Trusted_Connection=Yes; TrustServerCertificate=true;

Есть предложения? Спасибо всем!

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

Это исключение sql, удостоверение пула приложений должно быть учетной записью с доступом к БД. Вы можете проверить это с помощью своей учетной записи.

0 голосов
/ 30 октября 2019

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

Конечно, есть и другие способы, но нам это удобно, и мыиспользуйте разные учетные записи служб для каждой среды, например service-appname-dev, service-appname-qa, service-appname-prod ...

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