- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有以下代码片段来针对 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/
我有一个带有 Windows 身份验证的 Web 应用程序。当我调试线路时 var domainContext = new PrincipalContext(ContextType.Domain, "
我正在开发一个 C# .NET Framework 库来访问事件目录。 我必须做的一件事是获取所有 AD 用户,我看到了: PrincipalContext principalContext =
我正在尝试使用 PrincipalContext 检查远程计算机上是否存在本地用户组。 我在使用 PrincipalContext 时遇到问题: PrincipalContext ctx = new
我正在尝试将 PrincipalContext 用于我正在开发的网络服务。我已经在不同应用程序的 Web 服务器上使用表单例份验证,并且工作正常。 我收到的错误是: System.DirectoryS
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, Domain, UserName, Password))
首先,我查看了关于 SO 的大多数问题,但似乎都不是完全相同的问题。 Here是一个类似的问题,但并不完全相同。在我的情况下,我正在创建一个 PrincipalContext : Dim pctx A
我正在尝试使用 PrincipalContext 通过 Active Directory 服务找出域组件。 我使用很少的参数创建了 PrincipalContext: PrincipalContext
我正在尝试使用 PrincipalContext 通过 Active Directory 服务找出域组件。 我使用很少的参数创建了 PrincipalContext: PrincipalContext
每当调用此方法时,我都会崩溃。 public bool findSAMAccountByName(string environmentUserName) { try
应用程序能否创建一次 PrincipalContext,然后在应用程序的整个生命周期内重复使用它?这将避免在每次调用 Active Directory 之前使用相同的详细信息重新创建 Principa
我们有一个应用程序使用 LDAP 通过 IP 地址通过 VPN 隧道对远程 AD 进行身份验证,使用以下代码: using (PrincipalContext pc = new PrincipalCo
我知道这有一个简单的解决方案,但我似乎无法让它工作... 使用其他 Stack Overflow answers和 Microsoft's Documentation ,我知道 PrincipalCo
我正在为 asp.net 创建一个自定义登录功能,它根据事件目录进行验证。用户必须能够仅使用他的用户名或他的用户名和域(以及两种情况下的密码)登录。 代码: AuthUser user = Authe
我有一个返回 PrincipalServer 的方法 CreateContextForGlobalCatalog连接到全局目录: PrincipalContext = new PrincipalCon
我有一个包含很多属性的 UserPrincipal 对象,但我找不到密码过期日期的属性。 如何做到这一点? 最佳答案 这是我能想到的最简单的方法... using System.DirectorySe
有没有办法强制 PrincipalContext 连接到特定的域 Controller ?我正在为我的应用程序枚举锁定帐户列表,我希望能够查询多个服务器并从所有 DC 返回列表。 目前我得到我的 Pr
我正在尝试将域帐户添加到远程计算机的管理员组。我遇到的问题是,当我尝试实际连接到远程机器 PrincipleContext 时,它给了我一条访问被拒绝的消息,但我是以远程机器本地管理员的身份连接的。当
我有以下两个使用 LDAP 和 LDAPS 对用户进行身份验证的实现,我想知道哪个更好/更正确。作为记录,这两种方法都适用于 SSL 和非 SSL 连接。 我也很好奇,因为在 Non-SSL Prin
我正在尝试通过 Active Directory 中的用户名查找用户。 这个有效: const string Domain = "SLO1.Foo.Bar.biz"; const string Use
我正在创建一个 PrincipalContext 对象,用于从我们的 AD 数据库中检索用户的组(然后我们使用这些对象对站点的各个部分进行身份验证)。 这过去是使用表单例份验证完成的,所以代码看起来像
我是一名优秀的程序员,十分优秀!