c# – 检查Active Directory角色耗时太长

c# – 检查Active Directory角色耗时太长,第1张

概述我有这个代码检查组成员身份,但似乎需要太长时间来响应和减慢我的应用程序,它需要几乎7-12秒的响应,我只需要检查一个特定的组成员,是否有更快这样做的方法? public static bool isInRole(UserAccount userAccount, string groupName) { using (var ctx = new Princi 我有这个代码检查组成员身份,但似乎需要太长时间来响应和减慢我的应用程序,它需要几乎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;   }}

也许这样的事情会更快一点?

总结

以上是内存溢出为你收集整理的c# – 检查Active Directory角色耗时太长全部内容,希望文章能够帮你解决c# – 检查Active Directory角色耗时太长所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存