今天注意到一件奇怪的事。在我正在进行的项目中,我有一些这样的代码:
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文档没有说明任何内容。
有人可以确认或否认吗?
答案 0 :(得分:0)
此代码示例不会抛出异常,但这并不意味着它必然有效。 DirectoryEntry
构造函数不对传递给它的值进行任何类型的身份验证或验证。相反,它仅存储这些值,稍后它们将尝试使用这些值以在服务器上进行查询。
这个特殊的代码不会抛出或失败的空字符串,但任何调用它导致它绑定到服务器很可能会失败。