ASP.NET代码,用于检测是否启用了IIS"Windows身份验证"

Jon*_*ave 10 asp.net iis iis-7 windows-authentication

我希望能够从ASP.NET代码中检测到IIS当前是否具有"Windows身份验证""可用"?

从我安装的应用程序开始,当前正在"匿名访问"下运行,我想检测:

  1. "Windows身份验证"组件实际上已经安装在IIS中(例如,某些IIS7默认情况下没有安装它); 和...
  2. "Windows身份验证"实际上是在我的虚拟根/位置上"已启用".

我希望此信息让管理员知道他是否需要在IIS 尝试在我的应用程序上打开它之前在IIS中执行操作.

(因此,例如,我觉得IIS7:怎样定义Windows身份验证已打开并不能帮助我,因为这是看它是否已经对我的申请,我想知道是否它安装/可打开.)

我的"解决方案"需要在7之前的版本以及7本身之前工作(或者至少不是"失败"),所以如果存在差异,我需要知道.谢谢.

Ric*_*h M 1

这并不是一个答案,而只是一个为您指明可能方向的想法。

Web 应用程序通常与其自身隔离,并在最低权限下运行,因此我认为您无法从应用程序的 ASP 代码中看到这样的全局设置。

我猜您会想查看 WMI 类。您可以使用 ADO 或 WMI 对象查询它们。不过,您可能需要冒充更高的凭据才能调用它。

请参阅这篇文章 TechNet 文章