问题标签 [principalcontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5076 浏览

c# - Error when using PrincipalContext.ValidateCredentials to authenticate against a Local Machine?

I have a WCF service which contains a Login method that validates a username and password against the local machine credentials, and after a seemingly random period of time it will stop working for some users.

The actual login command looks like this:

This appears to work fine for a few days, then it will abruptly stop working for some users and throw this exception:

Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again. (Exception from HRESULT: 0x800704C3)

at System.DirectoryServices.AccountManagement.CredentialValidator.BindSam(String target, String userName, String password)

at System.DirectoryServices.AccountManagement.CredentialValidator.Validate(String userName, String password)

at System.DirectoryServices.AccountManagement.PrincipalContext.ValidateCredentials(String userName, String password)

at MyNamespace.LoginService.Login(String username, String password, String ipAddress) in C:\Users\me\Desktop\somefolder\LoginService.svc.cs:line 67

Line 67 is: if (pContext.ValidateCredentials(username, password))

I'm not sure if it matters or not, but the final line of the error message is the path of the VS solution on my development machine, not the path to the files on the production server.

When it fails, it only fails for some users, while others can continue to login just fine. The only thing I have found to temporarily fix the error is running iisreset. Stopping/starting the web site or recycling the app pool doesn't work.

I am unable to reproduce the error on demand. I've tried logging in with the same user from multiple sessions and IP addresses, logging in with different users from the same browser session at the same time, spamming the Login button to try and get it to run multiple times, etc but everything appears to work fine.

I can see from our logging that users have been successfully able to login in the past:

The reason we authenticate against the local machine is because users have an account created locally for FTP access, and we didn't want to build our own custom login system or make our users remember two sets of credentials.

The code should only authenticate the user's credentials, and does not do do anything else with the user's credentials. There is no other code that uses System.DirectoryServices, no file IO going on, and no access to anything locally on the file system other than the files required to run the web application.

What can cause that error to appear, seemingly at random, after a few days? And how can I fix it?

The server is Windows Server 2003, which runs IIS 6.0, and it is setup to use .Net Framework 4.0

0 投票
1 回答
1499 浏览

asp.net - System.DirectoryServices.AccountManagement PrincipalContext 模拟创建新用户

在 Sharepoint(或任何 ASP.NET Web 应用程序)中,我想要一个创建 AD 用户的功能。我正在使用 System.DirectoryServices.AccountManagement 来完成这项任务,但我遇到了麻烦。这是我的代码:

用户被创建但被禁用。我知道我的管理员:密码对是正确的,因为“if”语句返回 true。同样在创建过程中,我收到异常:

我检查了 PrincipalContext 对象,它正在使用“管理员”帐户连接到域控制器。这个错误和 up.Save() 函数抛出异常的原因可能是什么?

0 投票
2 回答
1100 浏览

c# - 如何使用 msTSProfilePath、msTSHomeDirectory 等扩展 C# DirectoryServices UserContext

我需要读/写 ActiveDirectory 用户对象终端服务属性。我试过这个:

我试过这个:

但没有任何效果。

我还尝试了以下属性名称:

  • 终端服务配置文件路径
  • 终端服务首页目录
  • 终端服务HomeDrive

但没有运气。任何帮助,将不胜感激!

谢谢, 沃金

0 投票
1 回答
1999 浏览

c# - C# Active Directory 主体上下文权限

我一直在寻找答案,但似乎找不到答案,但也许我错过了。我有一个 WPF 应用程序,我使用 PrincipalContext 连接到 MS AD。我的开发机器没有加入域,我可以连接没有问题。但是,在我们的终端服务器上,我的应用程序只有在当前登录的用户在 Domain Admins 组中时才能连接,即使我将有效凭据传递给 PrincipalContext 构造函数。我尝试过使用我的帐户、“服务”帐户,甚至管理员帐户。

我有这个在我的开发机器上工作,但不在我们的终端服务器上:

在终端服务器上,它会引发异常。消息是“无法建立连接”。经过进一步调查,我发现 LDAP 返回了一个错误代码 91,我也查过它,但我似乎仍然无法连接它。我一定尝试过将每个参数组合传递给 PrincipalContext。

编辑:

我一直在玩它。我无法让 PrincipalContextor LdapConnection 连接到终端服务器,但它们都可以在我的开发机器上工作。唯一会连接的是 DirectoryEntry。也许这会提供更多线索?

有什么建议么?

0 投票
1 回答
2116 浏览

c# - UserPrincipal Getauthorizationgroups 出错

Error1:发生操作错误。

错误 2:尝试检索授权组时,发生错误 (110)。

当我在同一台机器上调试时,这一切都有效,只有当我从远程服务器上拉网页时才会失败。

0 投票
2 回答
4090 浏览

c# - 根据名字、姓氏和显示名在 Active Directory 中搜索用户

我试图在我的组织活动目录中搜索用户。

如果 FirstNameLastNameDisplayName 匹配特定的字符串值,它应该返回用户。

我的代码:

问题是我只能通过一个过滤器进行搜索。

我可以 AND 过滤器,但不能 OR。是否有可用的解决方案?

0 投票
2 回答
1927 浏览

c# - C# - 当“.\”预先附加用户名时无法验证本地计算机用户

我正在使用 System.DirectoryServices.AccountManagement 库来验证本地用户。

我有以下代码:

但是,每当我传递正确的用户名时,前置“。

有人能帮帮我吗。如果我删除“。\”那么它工作正常。

我的另一个条件是我只想验证本地机器用户而不是域用户。

请帮忙

0 投票
1 回答
468 浏览

c# - Firefox 中的 UserPrincipal.FindByIdentity 错误

我有一种方法可以检索用户所属的 AD 组列表。这是代码:

在 IE 和 Chrome 中,这可以正常工作,但在 Firefox 中,它总是给我 DirectoryServicesCOMExceptionuser = UserPrincipal.FindByIdentity(yourDomain, userName);我什至不知道那是什么类型的异常。有人可以解释一下错误是什么以及如何解决吗?非常感谢!

0 投票
1 回答
2561 浏览

c# - 如何在 asp.net c# 中使用 PrincipleSearcher 在单个搜索中包含来自 AD 帐户的多个 OU

场景: Active Directory用户名搜索应针对搜索项(即名字或姓氏)返回结果。有 6 个国家/地区设置为 AD 帐户的不同组织单位。例如英国(OU=UK)、法国(OU=FR)。现在应该显示用户名,用户名可能属于 OU=UK 或 OU=FR。

PrincipalSearcherSystem.DirectoryServices.AccountManagement图书馆使用

问题:上面允许返回仅属于 OU=UK 的用户名。

问题:如何在PrincipalContext.

0 投票
1 回答
563 浏览

asp.net-mvc - asp.net mvc 每 45 秒响应慢

我有一个 MVC 4 应用程序,它大约每 45 秒执行一次慢速请求。它通常是 200 毫秒,所有请求将是 200 毫秒约 45 秒,然后有一个约 4500 毫秒。然后回到200ms。

我没有设置缓存。但是,我使用 PrincipalContext 来查询 AD。

在我开始对电话进行一些分析之前,我想知道是否有人有任何想法。

快的:

快的

慢的:

慢的