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

时间:2012-01-27 14:37:50

标签: 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文档没有说明任何内容。

有人可以确认或否认吗?

1 个答案:

答案 0 :(得分:0)

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

这个特殊的代码不会抛出或失败的空字符串,但任何调用它导致它绑定到服务器很可能会失败。