问题标签 [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 投票
0 回答
318 浏览

c# - UserPrincipal.IsMemberOf(GroupPrincipal) 跨域 ASP.Net

我希望修改一个站点以跨域进行验证,但是当以其他域的用户身份运行和登录时,它会给出以下错误。您能否建议需要将什么安全设置应用于 ASP.Net 应用程序池才能启用此功能?

正在运行的代码 - 仅显示与查询相关的对象

0 投票
1 回答
2879 浏览

c# - LDAP 服务器使用 PrincipalContext 和 ADLDS 不可用

我们正在使用ADLDS进行用户管理和身份验证。我们可以毫无问题地成功查询实例。但是,如果尝试执行诸如SetPassword将失败的操作,甚至尝试创建新用户(如果未设置密码),则会失败。只要不是我尝试更新的密码,我就可以成功更新用户。我一直在阅读很多与此相关的不同文章,但没有找到解决方案。发帖看看我是否可以对这个问题有一些新的看法,感谢您的任何意见。

例子

错误 1

如果我尝试创建一个新的 UserPrincipal 并调用 Save 而不像上面的示例中那样设置密码,我遇到的第一个问题我得到一个异常A constraint violation occurred.,带有 InnerException 扩展消息0000052D: AtrErr: DSID-033807D7, #1:0: 0000052D: DSID-033807D7, problem 1005 (CONSTRAINT_ATT_TYPE), data 2246, Att 9005a (unicodePwd)

由于这个错误,我尝试在调用 Save 之前移动 SetPassword 以及我在网上找到的其他方法,例如从 UserPrincipal 获取 DirectoryEntry 并尝试调用 SetPassword 但得到不同的错误。

错误 2

在调用UserPrincipal.Save之前调用SetPassword,调用save时会报错The directory property cannot be found in the cache.

ResetPassword请注意,如果我尝试调用或获取 DirectoryEntry 并同时调用Invoke("SetPassword"...,也会发生相同的错误

错误 3

根据我的研究,大多数人似乎表明这可能与需要使用安全连接访问 AD LDS 有关。因此,我将服务器更改为包含 636 端口,string server = "myadldsserver.com:636"并将 ContextOptions 更改为ContextOptions.SimpleBind | ContextOptions.SecureSocketLayer.

在构造 PrincipalContext 时进行这些更改,我得到以下异常The server could not be contacted.,内部异常为The LDAP server is unavailable.HResult 为 -2146233087

JAVA 和 LDP

为了添加一些背景知识,我们确实在较旧的 Java 应用程序中编写了类似的代码。我们正在尝试将其中一些逻辑移植到 C# 中的 .NET 端。Java 中的代码使用包含在 AD LDS 服务器上生成的证书的 Java 密钥库。Java 应用程序使用 SSL 端口当然没有问题。我们知道服务器似乎配置正确,这只是如何从 .NET 端访问它的问题。

.NET 端是否有等价物,例如 Java 中的密钥库?我们知道可以与服务器建立 SSL 连接。我们也使用 LDP 验证了这一点。

目标

  • 能够在创建过程中创建新用户并设置其密码
  • 能够为用户重置密码或更改密码
  • 从 .NET 安全地连接到我们的 AD LDS 实例
0 投票
1 回答
465 浏览

c# - 获取本地组的成员

我正在检查用户属于特定组的天气。我的代码是这样写的

但我面临一个看起来像这样的错误

这个问题有什么可能的解决方案吗?

0 投票
1 回答
17225 浏览

asp.net-core - How to use PrincipalContext in .NET Core 2.0

I have created a web application in .NET Core 2.0 where I would like to use a PrincipalContext from namespace System.DirectoryServices.AccountManagement.

I want to validate user agains Active Directory like this:

How can I use the PrincipalContext (System.DirectoryServices.AccountManagement) in .NET Core 2.0?

0 投票
0 回答
752 浏览

c# - 从 AD 组跨域获取组成员

我需要从域 MYDOMAIN.CC 中的 Active Directory 中获取属于某个组(我们称之为“SourceGroup”)的所有用户对象。这包括解析嵌套组(递归)。

我正在与 UserPrincipal 和 PrincipalContext 合作来实现这一目标。GetMember(true) 自动解析组并且工作正常。

现在,当 MYDOMAIN.CC 的“SourceGroup”从另一个域(即 US.MYDOMAIN.CC)获取成员时出现了问题。然后我更改了查询以搜索全局目录:

它现在适用于直接放入 MYDOMAIN.CC\SourceGroup 的 US.MYDOMAIN.CC 用户。但问题是它现在忽略了嵌套组(它只返回直接在组中的用户)。

我有一种感觉,这可能是因为全局编录没有组成员身份?有谁知道允许我跨域获取组成员的方法?

0 投票
1 回答
1598 浏览

c# - PrincipalContext.ValidateCredentials:发现用户名或密码无效

我在我的应用程序中使用 AD 身份验证:

有什么方法可以查明我是否因为用户名无效或密码无效而被isValid设置?false

0 投票
1 回答
844 浏览

c# - 为什么我收到“找不到与指定参数匹配的安全对象”错误(GroupPrincipal)

我正在创建一个程序,用于在特定计算机上的本地组中添加和删除域用户

我成功完成了将用户添加到组的部分,但是在删除时我收到了这个错误。

抛出异常:System.DirectoryServices.AccountManagement.dll 中的“System.DirectoryServices.AccountManagement.NoMatchingPrincipalException” System.DirectoryServices.AccountManagement.dll 中发生“System.DirectoryServices.AccountManagement.NoMatchingPrincipalException”类型的未处理异常附加信息:没有安全对象匹配找到的指定参数

这是我的函数和变量可以包含的示例

我也尝试更改 IdentityType,但得到了相同的结果

我可以使用 foreach 打印任何组的所有成员,因此我认为“GroupPrincipal”之前的所有内容都是正确的。

好像我输入了错误的用户名,但用户名是正确的(我正在使用它登录到域中的计算机)并且使用下面的公式也没有帮助。

域名\用户名

我也找到了这个线程,但对我来说,它看起来几乎是一样的,但写法不同。

非常感谢任何帮助或想法!抱歉,如果我遗漏了一些明显的东西,但我只使用了一段时间 C#。

0 投票
1 回答
812 浏览

c# - PrincipalContext:异常详细信息:System.DirectoryServices.DirectoryServicesCOMException:发生操作错误

我正在尝试为用户搜索 AD,但它不断抛出异常。该应用程序设置为使用 AppPool。而且我确信登录的用户可以访问搜索广告。

代码:

堆栈跟踪:

源错误:

0 投票
1 回答
687 浏览

c# - C# 中具有缓存凭据的 PrincipalContext.ValidateCredentials

我正在尝试使用具有以下代码的域控制器对应用程序中的用户进行身份验证:

只要域服务器在线就可以正常工作,但如果没有域服务器,则前面的代码将失败并出现 PrincipalServerDownException 异常。我要做的是让我的应用程序在服务器关闭时使用 Windows 缓存的凭据,就像 Windows 一样:即使域服务器关闭,您也可以使用域用户登录 Windows。我可以在 C# 中做到这一点吗?

非常感谢您提前。

0 投票
1 回答
1539 浏览

c# - C# PrincipalContext only changes password for some users, not all

I'm trying to change the AD password of all members in my system, but my code only changes the password for some members successfully. For members whose password can't be changed, it shows the following error:

System.NullReferenceException: Object reference not set to an instance of an object. at changep1.changep2.changeUserPassword(String _userID, String _oldPassword, String _newPassword) in C:\Users\Intern\source\repos\changep1\changep1\changep2.aspx.cs:line 52

Here is my c# code:

I don't understand why my code doesn't change passwords for all AD members. Please help thanks.