Ste*_*ing 4 c# admin active-directory active-directory-group userprincipal
我正在尝试使用一种方法,该方法接受用户名,如果该用户是本地管理员(不是整个域,只是本地计算机),则返回 true,否则返回 false。我试图改变在 .NET/C# 测试中找到的技术,如果进程有管理权限可以工作,但它没有。我曾尝试使用 NetUserGetInfo 方式,但无法使其正常工作。现在我正在尝试使用 UserPrincipal。下面的代码是我所拥有的全部……主要只是测试基础知识是否有效并且它们确实有效。
PrincipalContext ctx = new PrincipalContext(ContextType.Machine);
UserPrincipal usr = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, userId);
if(usr == null)
{
Console.WriteLine("usr is null");
}
else
{
Console.WriteLine(usr.Enabled);
Console.WriteLine(usr.IsAccountLockedOut());
foreach (Principal p in usr.GetAuthorizationGroups())
{
Console.WriteLine(p.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
看起来我应该可以使用 isMemberOf 方法,但是如何为本地管理员创建一个组?或者有比 isMemberOf 方法更好的方法吗?
好吧,实际上我只能检查从 GetAuthorizationGroups()) 返回的 Principals 之一是否等于“Administators”。
foreach (Principal p in usr.GetAuthorizationGroups())
{
if (p.ToString() == "Administrators")
{
result = true;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4242 次 |
最近记录: |