我正在尝试清理 C# 应用程序的 OU 名称的用户输入。
AntiXSSLdapDistinguishedNameEncode似乎是为此定制的,但是当我尝试在 OU 的名称上使用它时,将其插入到可分辨名称中,然后将其传递到一个PrincipalContext或DirectoryEntry对象中,我得到无法找到该对象的异常。
使用未经清理的 OU 名称时,一切都会成功。
AD 库是否理解编码的专有名称?还是预期在创建 OU之前以及稍后引用它时LdapDistinguishedNameEncode运行?
示例代码,ouName“Bob-Marley”或“dlanod's company”在哪里,破折号和撇号被编码:
var distinguishedName = $"OU={Encoder.LdapDistinguishedNameEncode(ouName)},DC=sample,DC=net";
try
{
// Create a context for the OU
var context = new PrincipalContext(ContextType.Domain, _targetedUrl, distinguishedName, ContextOptions.Negotiate | ContextOptions.Signing | ContextOptions.Sealing);
}
catch (Exception e)
{
_logger.Error(e, "Organization {0} with definition {1} could not be found, exception occurred {2}", ouName, distinguishedName, e);
}
吃鸡游戏
慕斯王
相关分类