2009-06-22 15 views
0

Ich entwerfe eine Web-App, die in einem Intranet verwendet wird, so dass der Windows-Authentifizierungsmodus ideal ist. Ein Teil der App benötigt jedoch die Möglichkeit, eine Liste von Benutzern zu erhalten (um Benutzer für Zuweisungen auszuwählen.) Membership.GetAllUsers() gilt nicht (für sich) mit Windows-Authentifizierung. Ich kann ActiveDirectoryMembershipProvider nicht verwenden, weil ich Es ist nicht erlaubt, Anmeldeinformationen zu speichern, mit denen eine Verbindung hergestellt werden muss, daher muss jeder AD-Zugriff als authentifizierter Benutzer ausgeführt werden.NTLM/Windows-Authentifizierung und GetAllUsers()

Ich habe wochenlang nach einem klaren Beispiel oder einer Lösung gesucht und gesucht Ich fange an zu denken, dass niemand in der Welt das gleiche Problem hat.

Ist meine einzige Option, Application_AuthenticateRequest zu verwenden und die beiden Welten der "Mitgliedschaft" mit "Windows Auth" zu verbinden? Aber wie bekomme ich dann eine Liste von "allen" Benutzern an anderer Stelle in der App? Gibt es einen ActiveDirectoryMembershipProvider, der einen Fehler macht? onates als der anrufende Benutzer?

Antwort

1

AD kann eine sehr große Anzahl von Benutzern enthalten - im Allgemeinen ist es in der Regel nicht praktisch, alle Benutzer aufzulisten.

Wenn Sie eine Benutzeroberfläche entwerfen, um Benutzer auszuwählen (z. B. für Rollenzuweisungen), würde ich etwas Ähnliches wie die vorhandenen Windows-Benutzeroberflächen verwenden, um einen AD-Benutzer oder eine Gruppe auszuwählen. Geben Sie beispielsweise einige Zeichen ein und suchen Sie nach Übereinstimmungen nach Vorname, Nachname oder gebräuchlichem Namen. Zeigen Sie alle Übereinstimmungen an (bis zu einigen Maximum - sagen Sie 1000) und lassen Sie den Benutzer von diesen wählen.

+0

Also werde ich meine eigene rollen, nicht wahr? Ich hatte vor, den AD "All Users" auf einen definierbaren Unterbaum oder Filter zu beschränken. – hometoast

+0

"Also werde ich meine eigene rollen, huh" - ich denke schon, es sei denn, Sie können irgendwo eine Implementierung finden. Ich habe mir Sharepoint angeschaut, das eine Benutzeroberfläche zur Zuweisung von Berechtigungen für AD-Benutzer hat, aber es ist eine hässliche Implementierung, die ein ActiveX-Steuerelement (Microsoft AddressBook oder etwas) verwendet. – Joe