AD Provider Membership.GetUser () provoque une erreur en indiquant: & # 8220; Le paramètre 'nom d'utilisateur' ne doit pas être vide. & # 8221;

StackOverflow https://stackoverflow.com/questions/1000276

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:)

Était-ce utile?

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
scroll top