2010-11-24 2 views
0

J'essaie de vérifier si l'utilisateur connecté existe dans un groupe AD ou une liste de distribution. J'ai essayé d'utiliser WindowsIdentity mais cela ne me donne pas de bons résultats. Si j'ajoute un utilisateur à la DL puis vérifie si l'utilisateur est dans la DL, cela me donne des résultats incorrects.Vérifier l'utilisateur connecté par rapport à la liste de distribution d'échange ou aux groupes AD dans C#

J'ai redémarré mon IIS et même effacé les cookies de mon navigateur et le cache, mais pas de chance. Où vérifie la fonction IsInRole() pour le rôle utilisateur. En AD ou sur la machine locale ....? J'ai aussi essayé de me retirer du groupe de machines locales, mais cela m'autorise toujours pour ce groupe. Toute aide serait appréciée.

Répondre

1

Si vous utilisez .NET 3.5, vous pouvez utiliser Principal.IsMemberOf() dans System.DirectoryServices.AccountManagement. Je l'ai essayé et cela fonctionne avec le groupe de sécurité AD ainsi que DL. Plus de détails sur la façon de programmer avec des groupes peuvent être trouvés here

+0

J'ai commencé à travailler. Merci beaucoup à toi. Cependant, une autre chose est, si le groupe B est membre du groupe A, je suis membre du groupe B et j'essaie de me vérifier pour le groupe A, il renvoie false. Est-il possible de vérifier pour une adhésion récursive? – Ashish

+1

Si votre groupe est un groupe de sécurité mais pas un DL, vous pouvez utiliser UserPrincipal.GetAuthorizationGroups http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.userprincipal.getauthorizationgroups.aspx. Si votre groupe doit être un DL, je crains qu'il n'y ait pas de moyen efficace de le faire. Vous devrez peut-être développer la liste de distribution de manière récursive en utilisant GroupPrincipal.GetMembers (true) et vérifiez si l'utilisateur est à l'intérieur du groupe. Vous pouvez poster une autre question sur StackOverflow et voir si des personnes connaissent mieux la façon de le faire pour DL. –

+0

Cela ne fonctionne toujours pas. Voici ma configuration IIS de l'application Web: Mode d'authentification: Basique + Windows Identité du pool d'applications: NetworkService Mes groupes sont un groupe de sécurité dans AD. Toute aide serait très appréciée. – Ashish

Questions connexes