Я пытаюсь заставить работать как ActiveDirectory, так и стандартные формы входа, но меня останавливает одна вещь. Я не могу получить имя текущего пользователя Windows. Самое близкое, что у меня есть, это var i = WindowsIdentity.GetCurrent();
, но это дает мне имя пользователя пула приложений IIS. У меня включены анонимная аутентификация, аутентификация с помощью форм и аутентификация Windows в IIS. Я могу загружать пользователей из AD, поэтому я предполагаю, что мой web.config настроен правильно.
Изменить: Это мой файл web.config (с использованием провайдера Facade):
<membership defaultProvider="HybridMembershipProvider">
<providers>
<clear />
<add name="HybridMembershipProvider" type="MyApp.Data.HybridMembershipProvider" AspNetProviderName="AspNetSqlMembershipProvider" ActiveDirectoryProviderName="ADMembershipProvider" />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MyAppConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
<add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString"
attributeMapUsername="sAMAccountName" enableSearchMethods="true" attributeMapEmail="mail"/>
</providers>
</membership>
Изменить 2: Вот моя настройка безопасности IIS.