public statische Schnur GetUsersPrimaryGroup (Schnur samAccountName)
{
Versuch
{
DirectorySearcher srch = Util.SearchUsers (100, samAccountName, falsch);
SearchResult userResult = srch.FindOne ();
DirectoryEntry Benutzer = neues DirectoryEntry (userResult.Path);
userSid = Benutzer des Bytes []. Eigenschaften [„objectSid“] [0] als Byte [];
user.RefreshCache (neue Schnur [] {„primaryGroupId“});
int primaryGroupID = Benutzer (int). Eigenschaften [„primaryGroupId“] [0];
Byte [] reinigte = BitConverter.GetBytes (primaryGroupID);
für (int I = 0; I < gereinigt. Länge; i++)
{
userSid.SetValue (gereinigt [i], neues langes [] {userSid.Length - (gereinigt. Länge - i)});
}
Schnur adPath = String.Format („LDAP: //“, BuildOctetString (userSid));
DirectoryEntry De = neues DirectoryEntry (adPath);
//We möchten nicht abschaffen, bis wir den Gruppennamen haben, der ist, warum wir anstelle von der Rückkehr zuweisen
Schnur primaryGroupName = De. Eigenschaften [„sAMAccountName“] [0] .ToString ();
RückholprimaryGroupName;
}
Fang (Ausnahme ex)
{
//throw, zum sich zu verfangen, wenn Methode benannt wird (wir wünschen, die Details/können besser verfolgen)
Wurf ex;
}
}
private statische Schnur BuildOctetString (Bytes des Bytes [])
{
StringBuilder Sb = neues StringBuilder ();
für (int I = 0; I < Bytes. Länge; i++)
{
Sb. Hinzufügen (Bytes [i] .ToString („X2“));
}
sb.ToString zurückbringen ();
}
|