2010-11-24 4 views
0

Ich versuche zu überprüfen, ob der angemeldete Benutzer in einer AD-Gruppe oder Verteilerliste vorhanden ist. Ich habe versucht, WindowsIdentity zu verwenden, aber das gibt mir keine richtigen Ergebnisse. Wenn ich einen Benutzer zum DL hinzufüge und dann überprüfe, ob der Benutzer in der DL ist, gibt es mir falsche Ergebnisse.Überprüfen Sie angemeldeten Benutzer gegen Exchange-Verteilerliste oder AD-Gruppen in C#

Ich startete meinen IIS neu und räumte sogar meinen Browser Cookies und Cache, aber kein Glück. Wo überprüft die IsInRole() Funktion für die Benutzerrolle. In AD oder auf lokaler Maschine ....? Ich habe versucht, mich aus der lokalen Maschinengruppe zu entfernen, aber es autorisiert mich immer noch für diese Gruppe. Jede Hilfe wäre willkommen.

Antwort

1

Wenn Sie .NET 3.5 verwenden, können Sie Principal.IsMemberOf() in System.DirectoryServices.AccountManagement verwenden. Ich habe es versucht und es funktioniert mit AD Sicherheitsgruppe sowie DL. Mehr Details zum Programmieren mit Gruppen finden Sie unter here

+0

Ich habe das funktioniert. Vielen Dank an dich. Aber noch eine Sache ist, wenn Gruppe B Mitglied der Gruppe A ist, ich bin Mitglied der Gruppe B und ich versuche mich selbst für Gruppe A zu verifizieren, es gibt false zurück. Ist es möglich, die rekursive Mitgliedschaft zu überprüfen? – Ashish

+1

Wenn Ihre Gruppe eine Sicherheitsgruppe, aber keine DL ist, können Sie UserPrincipal.GetAuthorizationGroups http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.userprincipal.getauthorizationgroups.aspx verwenden. Wenn Ihre Gruppe ein DL sein muss, gibt es leider keine effiziente Möglichkeit, dies zu tun. Möglicherweise müssen Sie die DL rekursiv mit GroupPrincipal.GetMembers (true) erweitern und überprüfen, ob der Benutzer in der Gruppe ist. Sie können eine weitere Frage zu StackOverflow stellen und sehen, ob jemand eine bessere Lösung für DL kennt. –

+0

Dies funktioniert immer noch nicht. Hier ist meine IIS-Konfiguration der Web-App: Authentifizierungsmodus: Basic + Windows Application Pool Identität: NetworkService Meine Gruppen sind Sicherheitsgruppe in AD. Jede Hilfe würde sehr geschätzt werden. – Ashish

Verwandte Themen