- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在过去的几年里,我一直在使用这个小功能来验证用户凭据,没有任何问题。 createPrincipalContext
方法返回一个带有 ContextType.Machine
和机器名称的 PrincipalContext
。
public static bool ValidateCredentials(string username, string password, string domain = null) {
try {
using (var principalContext = createPrincipalContext(username, domain)) {
username = GetLoginInfo(username).Username;
// validate the credentials
if (principalContext.ValidateCredentials(username, password)) {
//once valid check if account is enabled
using (UserPrincipal user = UserPrincipal.FindByIdentity(principalContext, username)) {
return user.Enabled.GetValueOrDefault(false);
}
}
}
} catch (PrincipalOperationException e) {
traceError(e);
} catch (Exception e) {
traceError(e);
}
return false;
}
我的开发机器最近自动更新到最新版本的 Windows 10,从那时起,principalContext.ValidateCredentials
一直抛出以下异常。
System.IO.FileNotFoundException: The system cannot find the file specified.
除了机器更新之外,没有其他任何改变。在过去的几天里,我一直在网上搜索可能导致该问题的原因。
有没有人有确定可能的原因以及可能的解决方案的经验?
最佳答案
在我开始将我的机器回滚到以前的版本之前最后一次谷歌,我发现了这个 https://connect.microsoft.com/IE/feedback/details/1904887/windows-10-insider-preview-build-10565
问题是由于缺少 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion 中的注册表条目引起的,特别是:RegisteredOwner 和 RegisteredOrganization
编辑:通过按 Windows R 并键入 regedit.exe 运行注册表编辑器。浏览到上面的位置
只需在注册表编辑器中右键单击 CurrentVersion,然后选择新建 > 字符串值。添加每个条目(RegisteredOwner 和 RegisteredOrganization)后编辑它们的值。您可以分别使用您的用户名和公司名称。
关于c# - Windows 10 更新后 System.DirectoryServices.AccountManagement.PrincipalContext 损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33717673/
我有一个带有 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 数据库中检索用户的组(然后我们使用这些对象对站点的各个部分进行身份验证)。 这过去是使用表单例份验证完成的,所以代码看起来像
我是一名优秀的程序员,十分优秀!