Сбой проверки подлинности Windows в IIS 7.5 с исключением доверительных отношений - PullRequest
8 голосов
/ 11 августа 2009

У меня есть приложение 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&gt
  <!--Deny anonymous users--&gt
  <deny users="?"/&gt
  <allow roles="domain\GroupWithAccess"/&gt
  <deny users="*"/&gt
</authorization&gt

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

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

Любая помощь очень ценится.

Ответы [ 2 ]

5 голосов
/ 25 ноября 2009

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

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

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

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

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

1 голос
/ 02 августа 2010

Я добавляю это для дальнейшего использования:

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

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

Возможно, это и решение проблемы.

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