У меня есть приложение 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, вход в систему и т. Д.).
Это приложение работает в Classic .Net AppPool по причинам совместимости. Я попытался изменить удостоверение AppPool на «NetworkService», но ошибка все еще сохраняется.
Любая помощь очень ценится.