gpt4 book ai didi

.net - FindByIdentity - 性能差异

转载 作者:行者123 更新时间:2023-12-03 14:47:16 28 4
gpt4 key购买 nike

以下代码在我们域中的各种机器上都可以正常工作。

var context = new PrincipalContext(ContextType.Domain);
var principal = UserPrincipal.FindByIdentity(context, @"domain\username")

但是,如果我在不在域中的机器上运行这个类似的代码,它可以工作,但 FindByIdentity 行需要 2 秒以上。
var context = new PrincipalContext(ContextType.Machine);
var principal = UserPrincipal.FindByIdentity(context, @"machinename\username")

是否可以通过向 PrincipalContext 构造函数和/或 FindByIdentity 方法提供特殊参数来解决这种性能差异? IIS 或 Windows 中是否有可以调整的设置?

至少,有人能告诉我为什么在第二种情况下它可能会变慢吗?

该代码从 Windows Server 2008 R2 上的 IIS 7.5(集成管道)中托管的 ASP.NET MVC 3 应用程序运行。

最佳答案

我有同样的问题。试试下面的代码块。我不知道为什么,但它更快(忽略在 VS 中构建后第一次慢速登录 - 后续登录速度很快)。查看类似的 SO 问题 Why would using PrincipalSearcher be faster than FindByIdentity()?

var context = new PrincipalContext( ContextType.Machine );
var user = new UserPrincipal(context);
user.SamAccountName = username;
var searcher = new PrincipalSearcher(user);
user = searcher.FindOne() as UserPrincipal;

潜在问题可能与 netBios 调用有关。见 ADLDS very slow (roundtrip to \Server*\MAILSLOT\NET\NETLOGON)

关于.net - FindByIdentity - 性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7533790/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com