快速获取组员资格

快速获取组员资格,第1张

概述快速获取组员资格 @H_301_0@我想弄清楚是否当前的windows用户是本地pipe理员或可以使用UAC来“获得”该组成员。

@H_301_0@我到目前为止所看到的是这样的:

@H_301_0@var adminIDentifIEr = new SecurityIDentifIEr("S-1-5-32-544"); var current = windowsIDentity.GetCurrent(); bool isadmin = current.Groups.Contains(adminIDentifIEr); bool canBeadmin = isadmin; if (!isadmin) { var adminGroupname = adminIDentifIEr.Translate(typeof(NTAccount)).Value; adminGroupname = adminGroupname.Substring(adminGroupname.LastIndexOf('\')); string path = "WinNT://./" + adminGroupname + ",group"; using (DirectoryEntry groupEntry = new DirectoryEntry(path)) { foreach (object member in (IEnumerable)groupEntry.Invoke("Members")) { using (DirectoryEntry memberEntry = new DirectoryEntry(member)) { object obVal = memberEntry.PropertIEs["objectSID"].Value; SecurityIDentifIEr sID = null; if (null != obVal) { sID = new SecurityIDentifIEr((Byte[])obVal,0); } canBeadmin = Equals(current.User,sID); if (canBeadmin) break; } } } } Console.Writeline(canBeadmin +" "+isadmin);

@H_301_0@这个解决scheme需要几毫秒来计算。 比我以前尝试的基于System.DirectoryServices.AccountManagement的方法快得多。

@H_301_0@尽pipe如此,还有最后一件事让我困扰。 我必须将pipe理员组的SecurityIDentifIEr转换为名称。 应该有一种方法可以直接使用SID来获取DirectoryEntry。 根据谷歌,这应该工作:

@H_301_0@通过JsON文件的用户反序列化指定的对象

@H_301_0@拦截MS windows的“SendTo”菜单调用?

@H_301_0@如何允许外部加载项与.net 3.0应用程序轻松接口?

@H_301_0@如何使用C#代码获取IIS虚拟目录和Web应用程序的物理path?

@H_301_0@无法将IStorageItem投射到Storagefile

@H_301_0@string path = "LDAP://<SID=" + adminIDentifIEr.ToString() + ">";

@H_301_0@但是,这似乎并不奏效。 任何想法的语法应该是什么样子?

@H_301_0@在窗户上的qyoto

@H_301_0@对于您可以创build和启动的Process对象的数量是否有windows限制?

@H_301_0@需要math库的序列/范围的 *** 作

@H_301_0@服务无法启动。 服务进程无法连接到服务控制器

@H_301_0@在windows 8中检测重启 – 未调用SessionEnding

@H_301_0@你有没有尝试windowsPrincipal.IsInRole ?

@H_301_0@windowsPrincipal wp = new windowsPrincipal(windowsIDentity.GetCurrent()); wp.IsInRole(new SecurityIDentifIEr("S-1-5-32-544")); wp.IsInRole(windowsBuiltInRole.administrator);

@H_301_0@您是否尝试过使用与当前用户对应的UserPrincipal对象上的GetAuthorizationGroups? 如果GetAuthorizationGroups不包括机器本地组,则可能需要检查用户是否直接位于本地管理员组中,或者本地管理员组是否包含用户所在的任何授权组。 我还没有尝试过机器上下文,所以我不知道是否你还需要搜索后者匹配的域上下文,如果它不使用域/全局/通用组计算本地组成员使用机器上下文。

@H_301_0@这应该是你想要的,除非我误解了:

@H_301_0@var groupname = adminIDentifIEr.Translate(typeof(NTAccount)).Value;

总结

以上是内存溢出为你收集整理的快速获取组员资格全部内容,希望文章能够帮你解决快速获取组员资格所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1292824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存