首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用PrincipalSearcher比使用FindByIdentity()更快?

为什么使用PrincipalSearcher比使用FindByIdentity()更快?
EN

Stack Overflow用户
提问于 2012-08-04 00:13:32
回答 1查看 5.7K关注 0票数 15

我有这样的代码:

代码语言:javascript
复制
var context = new PrincipalContext( ContextType.Machine );
var user = UserPrincipal.FindByIdentity( context, username );

它花了大约2-3秒才跑完。我被推荐使用PrincipalSearcher类重写它:

代码语言:javascript
复制
var context = new PrincipalContext( ContextType.Machine );
var user = new UserPrincipal(context);
user.SamAccountName = username;
var searcher = new PrincipalSearcher(user);
user = searcher.FindOne() as UserPrincipal;

而且它的运行时间不到一秒--明显更快。为什么建议重写的人和我一样不知道为什么它运行得更快。

为什么它会造成性能上的差异?

EN

回答 1

Stack Overflow用户

发布于 2012-08-04 00:23:14

我能想到的唯一合理的原因是,.FindByIdentity必须检查多个属性是否匹配,因为您没有确切指定要查找的属性。

您可以通过指定要查找的属性(using this method overload)来完成此操作-尝试执行以下操作进行比较:

代码语言:javascript
复制
var user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, username);

这有多快?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11799457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档