2

今天注意到一件奇怪的事。我正在处理的项目中有一些这样的代码:

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 文档没有不要说什么。

任何人都可以确认或否认这一点吗?

4

1 回答 1

0

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

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

于 2012-01-27T15:41:10.450 回答