Аутентификация Windows в IIS 7.5 завершается сбоем из-за исключения доверительных отношений

У меня есть приложение ASP.Net 2.0, которое использует встроенную проверку подлинности Windows для проверки подлинности / авторизации пользователей. Приложение отлично работает в Windows XP / IIS 5.1, Windows Server 2008 / IIS 7 и Windows Vista / IIS 7. Когда я пытаюсь запустить это приложение в Windows 7 / IIS 7.5, я получаю следующее исключение: The trust relationship between this workstation and the primary domain failed.

Трассировка стека выглядит следующим образом:

[SystemException: The trust relationship between this workstation and the primary domain failed.
]
   System.Security.Principal.NTAccount.TranslateToSids(IdentityReferenceCollection sourceAccounts, Boolean& someFailed) +1085
   System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess) +46
   System.Security.Principal.WindowsPrincipal.IsInRole(String role) +128
   System.Web.Configuration.AuthorizationRule.IsTheUserInAnyRole(StringCollection roles, IPrincipal principal) +229
   System.Web.Configuration.AuthorizationRule.IsUserAllowed(IPrincipal user, String verb) +354
   System.Web.Configuration.AuthorizationRuleCollection.IsUserAllowed(IPrincipal user, String verb) +245
   System.Web.Security.UrlAuthorizationModule.OnEnter(Object source, EventArgs eventArgs) +11153304
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171

Файл web.config содержит следующую информацию, относящуюся к аутентификации / авторизации:

<authentication mode="Windows" />
<authorization>
  <!--Deny anonymous users-->
  <deny users="?"/>
  <allow roles="domain\GroupWithAccess"/>
  <deny users="*"/>
</authorization>

Большинство результатов, которые я обнаружил при исследовании этой ошибки, говорят о том, что проблема связана со сломанной учетной записью компьютера в домене, и указывают решение как повторное присоединение к домену. Я сделал это, но ошибка все равно появляется. «Обычные» доменные операции работают нормально (доступ к общим ресурсам UNC, вход в систему и т. Д.).

Это приложение работает в классическом пуле приложений .Net по соображениям совместимости. Я попытался изменить идентификатор AppPool на «NetworkService», но ошибка не исчезла.

Любая помощь приветствуется.


person Sean Carpenter    schedule 11.08.2009    source источник


Ответы (2)


Я наконец нашел ответ на этот вопрос после того, как испытал ту же проблему на Windows Server 2008 R2. Из этой статьи:

Отключите следующие политики на сервере Windows 2008 R2, запустите gpupdate / force и перезапустите сервер.

«Конфигурация компьютера \ Настройка Windows \ Параметры безопасности \ Локальные политики \ Параметр безопасности»

Член домена: цифровое шифрование или подпись данных безопасного канала (всегда)
Член домена: цифровое шифрование данных безопасного канала (когда возможно)
Член домена: цифровая подпись данных безопасного канала (когда возможно)

Я могу подтвердить, что это также устранило проблему в Windows 7.

person Sean Carpenter    schedule 25.11.2009
comment
У меня нет контроля над AD, я могу внести изменения в конфигурацию, чтобы это работало. - person Micah Armantrout; 29.04.2014
comment
Связанная статья указывает на KB976494, предназначенный для Server 2008 R2 RTM. Для SP1 исправление уже включено. См. Мой комментарий к ответу @jishi. Однако не уверен, что этот обходной путь может применяться в некоторых случаях. - person piers7; 19.01.2017

Я добавляю это на будущее:

«Ошибка 1789 при использовании функции LookupAccountName на компьютере под управлением Windows 7 или Windows Server 2008 R2»

http://support.microsoft.com/kb/976494

Это тоже может быть решением проблемы.

person jishi    schedule 02.08.2010
comment
Обратите внимание, что KB976494 включен в SP1 для Windows Server 2008 R2 (и поэтому больше не может быть установлен). Если вы используете SP1, это не то исправление, которое вы ищете. См. support.microsoft.com/en-au/help/976932/ (и, к сожалению, скачать манифест Excel для SP) - person piers7; 19.01.2017