AD Provider Membership.GetUser () вызывает ошибку: & # 8220; Параметр 'username' не должен быть пустым. & # 8221;
-
05-07-2019 - |
Вопрос
Используя поставщик ActiveDirectory, когда я выполняю Membershhip.GetUser ()
я получаю сообщение об ошибке:
Параметр username не должен быть пустым.
Вот конфигурация членства:
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider" >
<providers>
<clear/>
<add name="AspNetActiveDirectoryMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
attributeMapUsername="sAMAccountName"/>
</providers>
</membership>
<authentication mode="Windows"/>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
Я пытаюсь получить доступ к этому методу из метода модульного тестирования Visual Studio. Спасибо за любую помощь:)
Решение
Проблема заключалась в том, что текущий участник потока не был установлен.
Добавление следующего ряда:
Thread.CurrentPrincipal = новый WindowsPrincipal (WindowsIdentity.GetCurrent ());
инициализирует текущий принципал, и GetUser () возвращается к работе.
Не связан с StackOverflow