问题标签 [directoryservices]

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 回答
4087 浏览

vb.net - 当 DN 包含“/”时,“new DirectoryEntry(distinguishedName as string)”不起作用

我有以下代码可以将 distinctName 转换为 sAMAccountName:

它适用于我通过的每个 DN,除了一个。我们的域中有一个 AD 组,其中有一个“/” - 称之为“程序员/DBA”。该组的 DN 是“Programmers/DBA,OU=User Groups,DC=mydomain,DC=local”。当我尝试将此 DN 用作上面的 stringDN 时,我收到“未知错误 (0x80005000)”的 COMException。

我域中的所有其他组/用户都可以正常工作,并且我在我们的测试域中复制了该问题,在该域中重命名该组使其不包含“/”可以解决问题。但是,我无法在生产中做到这一点,所以我被卡住了。

我可以以某种方式逃避这个“/”吗?我必须相信有一个解决方案,这样我才能正确获得这个组的属性。

0 投票
1 回答
370 浏览

vb.net - System.DirectoryServices 在多线程时与我的处理器挂钩 - 我可以减轻负担吗?

我的应用程序获取当前登录的用户并使用 DirectoryServices.DirectorySearcher 来提取一些关于他们的额外详细信息(我们存储在一些自定义 AD 字段中的一些属性,以及他们的电子邮件地址)。这很好用,虽然我一直觉得它有点慢——我的单线程代码每秒只能向 AD 发出大约 2-3 个请求。

当我将此代码移至 Web 服务器时,真正的问题出现了。有多个同时用户,每秒请求的数量会大大增加,并且 LSASS.EXE 进程挂在我的服务器上。我检查了域控制器,它们都很好——瓶颈显然在应用程序端。我怀疑让我慢下来的是 NTLM/Kerberos 挑战/响应,同时请求的数量甚至与多核处理器挂钩。

我们的网络政策不允许从 AD 进行匿名读取,因此没有选择。此外,我已经尝试了“AuthenticationTypes”的每个成员(在示例中,我使用的是 .FastBind),但它们似乎都具有大致相同的吞吐率和相同的处理器负载。

有人知道我如何解决这个限制并降低对处理器的要求吗?

这是我正在使用的代码 - 非常简单:

0 投票
2 回答
4094 浏览

c# - 如何使用 C# 确定虚拟目录或网站的 ASP.NET 版本?

如何找出在 C# 中使用的 IIS 虚拟目录的 .NET 框架。我需要向用户展示它。

0 投票
8 回答
11661 浏览

c# - 尝试连接到远程 IIS 服务器时出现“拒绝访问”-C#

当我尝试从在 IIS 5.1 下运行的 C# 应用程序连接到远程 IIS 6 服务器时,我收到“Access Deined”COMException。

有任何想法吗?我在原始问题中遇到了所有相同的问题。

更新 - 2009 年 4 月 1 日

我找到了这个解决方案(http://www.codeproject.com/KB/cs/Start_Stop_IIS_Website.aspx),它包含一个连接到 IIS 服务器以启动和停止网站的窗口应用程序。我能够在我的工作站上运行它并连接到 IIS 服务器。

呃....为什么我可以运行这个独立的应用程序而不是我的 ASP.NET 应用程序?

原来的

当我尝试使用 DirectoryEntry.Exist 方法从远程计算机连接到 IIS 以检查 IIS 服务器是否有效时,我收到“拒绝访问”COMException。

我是一个活动目录组的成员,该组已添加到我尝试连接的 IIS 服务器的管理员组中。

有没有人遇到过这个问题并知道如何解决它?

更新:

@Kev - 这是一个 ASP.NET 应用程序。此外,我可以通过 IIS6 管理器在没有用户名和密码的情况下连接到远程服务器。

@Chris - 我正在尝试连接到远程服务器以显示虚拟目录的数量并确定每个目录的 .NET 框架版本。请参阅这个SO 问题。

@dautzenb - 我的 ASP.NET 应用程序在 IIS 5.1 下运行,试图连接到 IIS 6 服务器。我可以在远程服务器上的本地 ASPNET 帐户的安全日志中看到故障审核。当我尝试调试应用程序时,我在我的域帐户下运行并且仍然获得访问被拒绝。

更新 2:

@Kev - 我能够使用以下重载创建 DirectoryEntry 对象:

但是,在我调试应用程序时,所有属性都包含“引发了类型为‘System.Runtime.InteropServices.COMException’的异常”。

此外,AuthenticationType 属性设置为 Secure。

更新 3:

每次我尝试建立连接时,远程 IIS 服务器的安全事件日志中都会出现以下两个失败审核条目:

第一个事件:

事件类别:帐户登录
事件 ID:680
记录尝试:MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
登录帐户:ASPNET
源工作站:
错误代码:0xC0000234

第二个事件:

事件类别:登录/注销
事件 ID:529
登录失败:
原因:未知用户名或密码错误
用户名:ASPNET
域:(MyDomain)
登录类型:3
登录过程:NtLmSsp
身份验证包:NTLM
工作站名称:(MyWorkstationId)
调用者用户名称: -
呼叫者域: -
呼叫者登录 ID: -
呼叫者进程 ID: -
中转服务: -
源网络地址: 10.12.13.35
源端口: 1708

模拟设置为真,用户名和密码为空。它使用远程 IIS 服务器上的 ASPNET 帐户。

0 投票
1 回答
6025 浏览

c# - 如何确定“IIsWebDirectory”或“IIsWebVirtualDir”是否为 ASP.NET 应用程序?

我目前正在编写一个 C# asp.net 应用程序来连接到 IIS 服务器并查询虚拟目录/web 目录信息。

我能够确定我应该处理的两种类型是“IIsWebDirectory”和“IIsWebVirtualDir”。

如何确定它们是否已配置为 C# 中的“应用程序”?

您还可以在此处此处查看我在 C# 和 IIS 中的冒险经历

更新

@Kev - 我在您的回答中获取了信息并开发了以下简单的解决方案来检查 AppFriendlyName 是否未设置为“默认应用程序”

0 投票
10 回答
35814 浏览

c# - 如何循环通过 PropertyCollection

谁能提供一个如何循环 System.DirectoryServices.PropertyCollection 并输出属性名称和值的示例?

我正在使用 C#。

@JaredPar - PropertyCollection 没有名称/值属性。它确实有一个 PropertyNames 和 Values,类型为 System.Collection.ICollection。我不知道构成 PropertyCollection 对象的基线对象类型。

再次@JaredPar - 我最初用错误的类型错误地标记了问题。那是我的错。

更新: 基于 Zhaph - Ben Duguid 输入,我能够开发以下代码。

0 投票
5 回答
9622 浏览

c# - 遍历 DirectoryEntry 或任何对象层次结构 - C#

我目前正在开发一个应用程序,它使用 System.DirectoryServices 命名空间来创建一个 DirectoryEntry 对象并遍历整个层次结构以收集信息。

我不知道层次结构中每个 DirectoryEntry 对象的子条目数,因此我无法通过 Children 属性为蜘蛛创建 N 个嵌套循环

这是我的伪代码示例:

我的问题是,如果您不知道对象中子目录的数量,那么创建一个循环来收集信息的最佳方法是什么?

(这可以应用于您不知道对象层次结构的任何类型的对象)

0 投票
5 回答
9882 浏览

active-directory - DirectoryServices.AccountManagement“旧”密码在密码更改后仍然有效

在 Active Directory 中重置用户密码后,如果用户尝试使用旧密码登录,则以下代码验证为 True:

我们正在使用以下代码重置密码:

密码重置工作正常,用户可以使用他们的新密码登录,但他们的旧密码不应该仍然有效。

当上述 ValidateCredentials 适用于旧密码时,我们将凭据分配给 Web 服务调用,然后失败并出现“401:未授权”错误。

有人见过这样的吗?

0 投票
0 回答
403 浏览

c# - 目录服务组查询随机变化

我在我的 asp.net 应用程序中收到异常行为。我有代码使用目录服务来查找给定的经过身份验证的用户的 AD 组。代码类似于...

然后我查询并获取给定用户的组列表。问题是代码接收组列表作为字符串列表。随着我们最新版本的软件,我们开始以字节[] 的形式接收组列表。

系统将返回字符串,突然返回 byte[],然后重新启动它再次返回字符串。

有人有想法么?

(marc_s) 添加了代码示例:

0 投票
1 回答
5048 浏览

c# - 从 C# 针对 ADAM 对 ADAM 用户进行身份验证 - 无法绑定

我已经设置了一个 ADAM 实例并添加了一些测试用户。在 c# 中,我可以使用 Windows 帐户绑定到 ADAM,但无法使用 ADAM 用户之一进行绑定。(我可以在 ldp 中成功绑定 adam 用户)并且我已通过将 msDS-UserAccountDisabled 属性设置为 false 来确保启用了用户。当我与我的 Windows 帐户绑定时,我可以成功搜索并带回 ADAM 用户的属性,但我仍在努力对他们进行身份验证,当我尝试与 ADAM 用户帐户绑定时,我收到错误:

错误:System.Runtime.InteropServices.COMException (0x8007052E):登录失败:未知用户名或密码错误。在 System.DirectoryServices.DirectoryEntry.Bind(布尔 throwIfFail)

这是我正在使用的代码:

在此先感谢您的帮助,非常感谢!