gpt4 book ai didi

c# - IIS 部署在 cassini 中运行正常后,PrincipalContext.ValidateCredentials 停止验证

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:20 27 4
gpt4 key购买 nike

我有以下代码片段来针对 AD 测试纯文本用户名/密码,如果我在 visual studio 中按 F5 并通过 WCFTestClient 尝试它,它工作正常,但是一旦我部署到 IIS 并尝试相同的功能,它永远不会为 ValidCredentials 返回 true;是否需要为应用程序池运行的身份设置一些安全方面的知识?

我尝试将 App Pool 标识设置为我自己的帐户(域管理员)只是为了测试这是否是问题所在,但这也没有帮助,所以我对如何解决这个问题有点迷茫。

网站(自定义 API)设置了匿名访问。

try
{
// create a "principal context" - e.g. your domain (could be machine, too)
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, DomainName))
{
// validate the credentials
if (pc.ValidateCredentials(UserName, Password))
{
IsValid = true;
break;
}
}
}
catch (Exception)
{
LoggingControler.LogWarning(null, "Unreachable Domain: " + Domain);
}

我又检查了一遍,这一切都归功于 Windows 中的权利。网络服务不知何故没有足够的权限来执行 PrincipalContext.ValidateCredentials。如果我将应用程序池标识更改为域管理员的标识,则代码有效。

如果有人能告诉我如何设置一个具有执行 PrincipalContext.ValidateCredentials 的适当权限的受限用户帐户,我就能完成这个。

最佳答案

好的,我终于通过 https://stackoverflow.com/questions/5140377/query-activedirectory-sometimes-not-working-asp-net-c 找到了自己的答案和 https://elgg.leeds.ac.uk/webteam/weblog/15385.html

正如我所发现的,“网络服务”应用程序池标识是解决此问题的关键...

添加阅读权限无效;所以还有其他问题。

关于c# - IIS 部署在 cassini 中运行正常后,PrincipalContext.ValidateCredentials 停止验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8134008/

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