AD Provider Membership.GetUser () provoque une erreur en indiquant: & # 8220; Le paramètre 'nom d'utilisateur' ne doit pas être vide. & # 8221;
-
05-07-2019 - |
Question
À l'aide du fournisseur ActiveDirectory, lorsque j'exécute Membershhip.GetUser ()
Je reçois un message d'erreur:
Le paramètre 'nom d'utilisateur' ne doit pas être vide.
Voici la configuration de l'appartenance:
<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>
J'essaie d'accéder à cette méthode à partir de la méthode de test unitaire Visual Studio. Merci pour toute aide:)
La solution
Le problème était que le principal du thread actuel n'a pas été défini.
Ajout de la rangée suivante:
Thread.CurrentPrincipal = new WindowsPrincipal (WindowsIdentity.GetCurrent ());
initialise le principe actuel et GetUser () est de retour au travail.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow