gpt4 book ai didi

c# - 使用 PrincipalContext.ValidateUser 时的性能问题

转载 作者:太空狗 更新时间:2023-10-30 01:26:37 25 4
gpt4 key购买 nike

我正在使用讨论的解决方案 here根据我的 ASP.NET Web 应用程序中的事件目录对用户进行身份验证。我编写了一个简单的 ADMembershipProvider 类,它与 FormsAuthentication 一起使用。在本地运行项目时工作正常,但部署到网络中的服务器时,ValidateUser 调用需要很长时间(大约 20 秒)。

//Assumes using System.DirectoryServices.AccountManagement
public override bool ValidateUser(string username, string password) {
using (var context = new PrincipalContext(ContextType.Domain)) {
return context.ValidateCredentials(username, password);
}
}

我尝试添加 namecontainer 参数,如 msdn 中所述到 PrincipalContext 构造函数,但这些参数似乎没有任何效果。

using (var context = new PrincipalContext(ContextType.Domain, "MyDomain", "OU=MyCompany,DC=some,DC=stuff")) {
return context.ValidateCredentials(username, password);
}

我们网络中至少有两台不同的服务器存在同样的问题。服务器连接到 AD 并运行 OS Windows server 2003 SP2 (IIS6)

我的一个想法是,问题可能与以下事实有关:我们的域对其他域有一些信任,并且它们在验证用户时以某种方式参与。但是,我们试图验证的用户仅存在于“我们的”AD 中。

最佳答案

遇到这个问题,必须使用 ValidateCredentials(string, string, ContextOptions) 方法传入正确的枚举组合以访问我们环境中的 ActiveDirectory 连接。

关于c# - 使用 PrincipalContext.ValidateUser 时的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4469795/

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