Question

question très simple en fait:

J'ai actuellement accès anonyme à IIS désactivé, les utilisateurs sont automatiquement connecté à l'aide de leur connexion Windows. Cependant appeler User.IsInRole ( « nom de rôle ») renvoie false. Je User.Identity.Name () revérifié et le « nom de rôle » et il devrait retourner vrai.

J'ai actuellement dans mon web.config:

UPDATE J'appelais User.IsInRole ( "nom de rôle") où je devrais appeler User.IsInRole ( "DOMAIN \ nom de rôle")

Cependant, j'aime toujours savoir si l'entrée est nécessaire à tous?

Que dois-je changer? ( et est l'entrée nécessaire? )

  <authentication mode="Windows">
      <forms
      name=".ADAuthCookie"
      timeout="10" />
  </authentication>


<membership defaultProvider="ADMembershipProvider">
  <providers>
    <clear/>
      <add
         name="ADMembershipProvider"
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         connectionStringName="ADConnectionString"
         connectionUsername="XXX\specialAdUser"
         connectionPassword="xx"
         />
  </providers>
</membership>

<roleManager enabled="true" defaultProvider="WindowsProvider">
  <providers>
    <clear />
      <add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
  </providers>
</roleManager>
Était-ce utile?

La solution

Si vous utilisez l'authentification Windows IsInRole fonctionnera sans configuration supplémentaire, aussi longtemps que vous vous souvenez de préfixer le rôle avec le domaine, à savoir DOMAIN \ groupName.

En outre, vous pouvez rôle (jeu de mots) votre propre et utiliser Windows auth contre, par exemple, un fournisseur de rôle SQL, où vous ne voulez pas que votre AD jonché de rôles personnalisés pour votre application.

Donc non, vous n'avez pas besoin de la configuration du fournisseur du tout.

Autres conseils

Le fournisseur d'appartenances ici ne va pas aider. Le ActiveDirectoryMembershipProvider semble mieux (seulement?) Adapter à l'authentification par formulaire.

À peu près sûr la seule chose dont vous avez besoin, il y a le groupe roleManager (ainsi que le mode d'authentification de base = réglage « fenêtres »)

Hors de la boîte, il n'y a aucun fournisseur de rôle à utiliser Active Directory directement. Vous pouvez utiliser la table de rôle dans le membership- ASP.NET et système de rôle, ou vous pouvez utiliser le Gestionnaire d'autorisations (AzMan).

Il y a un article sur CodeProject qui montre la mise en œuvre d'un fournisseur de rôle qui travaille contre l'active Directory - avec le code source complet. Peut-être que cela aide?

Marc

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top