c# – 检查Active Directory角色耗时太长
发布时间:2020-12-15 21:21:11 所属栏目:百科 来源:网络整理
导读:我有这个代码检查组成员身份,但似乎需要太长时间来响应和减慢我的应用程序,它需要几乎7-12秒的响应,我只需要检查一个特定的组成员,是否有更快这样做的方法? public static bool isInRole(UserAccount userAccount,string groupName) { using (var ctx = new
我有这个代码检查组成员身份,但似乎需要太长时间来响应和减慢我的应用程序,它需要几乎7-12秒的响应,我只需要检查一个特定的组成员,是否有更快这样做的方法?
public static bool isInRole(UserAccount userAccount,string groupName) { using (var ctx = new PrincipalContext(ContextType.Domain,userAccount.DomainName)) { using (var grp = GroupPrincipal.FindByIdentity(ctx,IdentityType.Name,groupName)) { bool isInRole = grp != null && grp .GetMembers(true) .Any(m => m.SamAccountName == userAccount.UserName); return isInRole; } } 解决方法
我没有你手头的特定AD来测试这个 – 但它可能值得一试:不是为特定用户检查组的成员(可能有成千上万的成员),为什么不检查用户的组成员身份以查看用户是否拥有正确的组?
就像是 : public static bool isInRole(UserAccount userAccount,string groupName) { using (var ctx = new PrincipalContext(ContextType.Domain,userAccount.DomainName)) using (var user = UserPrincipal.FindByIdentity(ctx,userAccount.UserName)) { bool isInRole = user != null && user.GetAuthorizationGroups() .Any(g => g.Name == groupName); return isInRole; } } 也许这样的事情会更快一点? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 我什么时候应该使用数组列vs.铁路协会
- (4.1.37.5)自定义控件的xml属性:declare-styleable
- Oracle的同义词(synonyms)详解
- 用于离线视图的Swift iOS Cache WKWebView内容
- 正则表达式及相关内容
- xcode – 在Interface Builder的文档大纲中更改约束列表的顺
- 通过server.xml来了解Tomcat结构及处理请求流程
- ios – 调用函数时swift中的EXC_BAD_ACCESS
- Flex滑动面板,类似QQ隐藏效果
- c – 从libevent移植到boost :: asio:什么是ASIO中libeven