c# - 将空字符串或空值传递给 DirectoryEntry 构造函数

标签 c# .net directoryentry

今天发现一件奇怪的事。我正在从事的项目中有一些这样的代码:

var directoryEntry =new DirectoryEntry(
    ConfigurationManager.AppSettings["path"],
    ConfigurationManager.AppSettings["user"], 
    ConfigurationManager.AppSettings["password"]
);

这是类库的一部分。当我从另一个项目使用这个库时,我忘记在应用程序/站点的 .config 文件中定义这些键,但它仍然有效。

我怀疑这个构造函数与 PrincipalContext 构造函数的工作方式类似 http://msdn.microsoft.com/en-us/library/bb298328.aspx ,因为如果您传递空值,它会使用当前用户的凭据,尽管 MSDN 文档没有说明任何相关内容。

谁能证实或否认这一点?

最佳答案

此代码示例未引发异常,但这并不意味着它一定有效。 DirectoryEntry 构造函数不对传递给它的值进行任何类型的身份验证或验证。相反,它仅存储这些值,稍后将尝试使用这些值来在服务器上进行查询。

此特定代码不会抛出空字符串或因空字符串而失败,但对其进行任何导致其绑定(bind)到服务器的调用很可能会失败。

关于c# - 将空字符串或空值传递给 DirectoryEntry 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9034914/

相关文章:

c# - 获取本地组的成员

c# - 通过指针操作写入缓冲图形表面

.net - Entity Framework 4 错误 : Unable to update the EntitySet because it has a DefiningQuery

C# float 转十进制

c# - Entity Framework 6 插入重复值

c# - NancyFX 立即反射(reflect)静态内容的变化

active-directory - 如何将 System.DirectoryEntry "uSNChanged"属性值更改为 Int64

c# - 如何知道我的 DirectoryEntry 是否真的连接到我的 LDAP 目录?

c# - 捕获事务连接后的 SqlTransaction 为空

c# - 为配置部分提供智能感知/xsd 验证