次のコードを使用して、アクティブディレクトリユーザのグループを取得しています。Domain Usersグループがアクティブなディレクトリユーザのために取得していません
StringCollection groups = new StringCollection();
try
{
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, domainName, userName, password))
{
//find user roles
UserPrincipal user = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, loginUserName);
if (user != null)
{
DirectoryEntry de = (DirectoryEntry)user.GetUnderlyingObject();
object obGroups = de.Invoke("Groups");
foreach (object ob in (IEnumerable)obGroups)
{
DirectoryEntry obGpEntry = new DirectoryEntry(ob);
groups.Add(obGpEntry.Name);
}
}
}
}
catch (Exception e)
{
}
これはほぼ同じように動作します。しかし、ユーザがDomain Users
グループをチェックしている間に、メソッドはグループ名を返しませんでした。一部のユーザーはこのDomain Users
グループのみを使用していますが、そのユーザーに対してこのメソッドを呼び出して空のグループを返しています。
任意の提案をしてください。..
はい、私は以前これを使用しましたが、「ドメインに関する情報を取得できませんでした(1355)」などのエラーが表示されます)。私は原因を理解することができないので、私は古い技術を使用するように移動しました。 –
指定されたリンクは現在404エラーを表示していますhttp://dunnry.com/blog/2005/01/18/DeterminingYourPrimaryGroupInActiveDirectoryUsingNET.aspx%24 –
@mahesh:申し訳ありません、貼り付けた後に余分な文字がありました。 –