9

Très simple question actuellement:Adhésion ASP.NET - Quel rôle RoleProvider doit-il utiliser pour que User.IsInRole() vérifie les groupes ActiveDirectory?

J'ai actuellement l'accès anonyme IIS désactivé, les utilisateurs sont automatiquement connectés en utilisant leur connexion Windows. Toutefois, l'appel de User.IsInRole ("Nom du rôle") renvoie false. J'ai revérifié User.Identity.Name() et le "nom de rôle" et il devrait renvoyer vrai.

J'ai actuellement dans mon web.config:

MISE À JOUR
j'appelle User.IsInRole ("nom de rôle") où je devrais appeler User.IsInRole ("DOMAIN \ Nom de rôle ")

Cependant, je aime toujours savoir si l'entrée < adhésion > est nécessaire du tout?

Que dois-je changer? (et est le <membres> 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> 

Répondre

4

Si vous utilisez l'authentification Windows, IsInRole fonctionnera sans configuration supplémentaire, à condition que vous vous souveniez de préfixer le rôle avec le domaine, c'est-à-dire DOMAIN \ groupName. En outre, vous pouvez jouer le rôle (jeu de mots) et utiliser l'authentification Windows contre, par exemple, un fournisseur de rôles SQL, où vous ne voulez pas que votre AD soit partagée avec des rôles personnalisés pour votre application.

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

1

Le fournisseur d'appartenances ici ne va pas aider. Le ActiveDirectoryMembershipProvider semble mieux (seulement?) Compatible avec l'authentification par formulaires.

0

Jolie que 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 »)

+0

Les rôles ne sont-ils pas automatiquement vérifiés dans Activedirectory? – Ropstah

0

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ôles dans le système d'appartenance et de rôle ASP.NET, ou vous pouvez utiliser le Gestionnaire d'autorisations (AzMan).

Il existe un article sur CodeProject qui montre l'implémentation d'un fournisseur de rôle qui fonctionne avec Active Directory - avec un code source complet. Peut-être que cela aide?

Marc

Questions connexes