c# - prüfen, ob der Benutzer Mitglied einer Gruppe?
Ich habe eine code, den ich verwenden, um zu überprüfen, ob der Benutzer Mitglied der AD, perfekt gearbeitet,
nun möchte ich hinzufügen, dass die Möglichkeit zu überprüfen, ob der Benutzer auch Mitglied der Gruppe!
was muss ich ändern um das zu erreichen, habe ich einige Arbeit, aber es funktioniert nicht!
so, hier ist mein code:
//Authenticate a User Against the Directory
private bool Authenticate(string userName,string password, string domain)
{
if (userName == "" || password == "")
{
return false;
}
bool authentic = false;
try
{
DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain,userName, password);
object nativeObject = entry.NativeObject;
authentic = true;
}
catch (DirectoryServicesCOMException) { }
return authentic;
}
Möchte ich es so machen:
private bool Authenticate(string userName,string password, string domain, string group)
Sie verwenden möglicherweise die falsche API für diese Aufgabe. Schreiben Sie die Authentifizierung code für eine Anwendung? Wenn dem so ist, sollte es eine viel einfachere API zu verwenden. Zum Beispiel, in ASP.NET Sie können auf diese Informationen mithilfe der Seite.Benutzer-Objekt. Oder ist der Zweck der Anwendung, um Active Directory abzufragen?
InformationsquelleAutor Data-Base | 2010-12-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht verfügbar in Windows XP oder früher.
Sowieso, um zu überprüfen, Gruppe Mitgliedschaft, können Sie diesen code verwenden:
Danke, aber wie integrieren wir diese in meinem code? die "string user" ist verwirrend mich! auch gibt es einige doc, die ich anschauen kann?
Es ist der Benutzername in der Domäne. Es wird wahrscheinlich funktionieren, nur mit dem Benutzernamen an, wenn sich die Maschine in der gleichen Domäne, oder es kann die Arbeit mit user@domain oder domain\user.
Für mich ist diese funktionierte wie ein Charme, und ich brauchte nicht zur Authentifizierung der Benutzer angefordert, auf alle.
Wo ist das problem mit Windows XP? Wird
new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(group)
arbeiten in Windows XP?InformationsquelleAutor Ran
In ASP.Net verwenden Sie
Page.User.IsInRole("RoleName")
oder in Windows, die Sie verwenden könnenSystem.Threading.Thread.CurrentPrincipal.IsInRole("RoleName")
Ja, ein Benutzer kann aus verschiedenen Rollen (Gruppen).
InformationsquelleAutor jvanrhyn
Ich es lösen mit diesem code
es funktioniert gut für mich, und es kann die Verwendung mit einer Maschine, die nicht Teil des Domain Controller /Active Directory
Danke Euch allen für die Hilfe
InformationsquelleAutor Data-Base