c# - Windows 事件日志中的 LdapConnection.SendRequest() 问题

标签 c# .net active-directory ldap

我在 .net 中遇到 ldap 查找的一些问题,希望有人能阐明 LdapConnection.SendRequest() 如何在具有多个域 Controller 的 AD 中工作

一些背景知识。

当用户登录时,我们使用 AD/ldap 连接将用户详细信息导入我们的系统。 我们使用单个广告帐户“cAdmin”绑定(bind)到 AD,然后我们将获取已登录用户的用户名,并对该用户名进行 ldap 搜索。如果找到用户,我们会将广告中的一些详细信息复制到我们的系统中。

这很好用,已经做了很多年了。但是客户已经注意到,每当用户登录时,事件日志中都会有大量调用联系他们的域 Controller (我们会查找用户)。我只希望这里有一个电话,对于我们的测试系统和其他客户,只有一个。但似乎有最初的调用,然后又调用了 6 或 7 个到帐户名为“c”(而不是 cAdmin)的第二个域 Controller

客户端在他们的域 Controller 上有负载平衡。

他们担心这是某种病毒或安全风险,而我很难证明这不是。

我们无法在此处重现该问题。

第一个First连接如预期的那样

=================================

尝试使用显式凭据进行登录。

主题:

Security ID:        NETWORK SERVICE

Account Name:       TRxxxxxxxx$

Account Domain:     XXX

Logon ID:       0x3E4

Logon GUID:     {00000000-0000-0000-0000-000000000000}

使用其凭据的帐户:

Account Name:       cAdmin

Account Domain:     STUDENT.XXX.UK

Logon GUID:     {9c7e24da-6c6b-43d6-b222-48923be0c224}

目标服务器:

Target Server Name: AD1.student.XXX.uk

Additional Information: ldap/AD1.student.XXX.uk

进程信息:

Process ID:     0x1520

Process Name:       C:\Windows\SysWOW64\inetsrv\w3wp.exe

网络信息:

Network Address:    -

Port:           -

当进程试图通过显式指定帐户的凭据登录帐户时,会生成此事件。这最常发生在批处理类型的配置中,例如计划任务,或者在使用 RUNAS 命令时。

============================================= === 第二个连接,'c' 显示为重复最多 7 次的帐户

============================================

尝试使用显式凭据进行登录。

主题:

Security ID:        NETWORK SERVICE

Account Name:       TRxxxxxx$

Account Domain:     XXX

Logon ID:       0x3E4

Logon GUID:     {00000000-0000-0000-0000-000000000000}

使用其凭据的帐户:

Account Name:       c

Account Domain:     

Logon GUID:     {00000000-0000-0000-0000-000000000000}

目标服务器:

Target Server Name: AD2.student.XXX.uk

Additional Information: AD2.student.XXX.uk

进程信息:

Process ID:     0x1520

Process Name:       C:\Windows\SysWOW64\inetsrv\w3wp.exe

网络信息:

Network Address:    -

Port:           -

当进程试图通过显式指定帐户的凭据登录帐户时,会生成此事件。这最常发生在批处理类型的配置中,例如计划任务,或者在使用 RUNAS 命令时。

============================================= ======

如果有人在这方面有任何建议或经验,我们将不胜感激。

谢谢。

最佳答案

我遇到了同样的问题。 Wireshark 显示 bindRequest 中的用户名相当随机地从双字节编码变为四字节编码。

例如 成功时,“Craig”在数据包中看起来像这样:C\0r\0a\0i\0g\0

在后面的bindRequests中 “克雷格”看起来像 C\0\0\0r\0\0\0a\0\0\0i\0\0\0g\0\0\0

在服务器日志中,用户名为“C”,因为服务器上的字符串函数正确地将 C\0\0\0 解释为以 null 结尾的 1 个字符的 Unicode 字符串。

看起来像一个 .Net 错误,根据我的经验,可能由使用 PageResultRequestControlSendRequest 触发

关于c# - Windows 事件日志中的 LdapConnection.SendRequest() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43996033/

相关文章:

.net - 我应该在下一个 Web 应用程序开发中使用 WPF 还是 ASP.NET?

c# - 如何使我的表单标题栏遵循 Windows 深色主题?

c# - JObject ToString 与 StringEnumConverter 不工作

c# - Topshelf 需要使用 Autofac 的 Quartz 作业工厂

c# - 强制 GC.Collect() 减少在时间敏感代码期间运行的机会?

c# - Program Files 中的文件夹上的 Directory.Exists 失败

c# - 在 C# 中处理 UAC 的正确方法

php - 想要使用事件目录身份验证登录 Web 基础系统

java ldap - 获取信息是 AD 中的一些变化

powershell - 语法问题 sn 未添加到 Set-ADUser 脚本的电子邮件字符串变量