【发布时间】:2011-06-27 16:10:14
【问题描述】:
我希望能够从 ASP.NET 代码中检测 IIS 当前是否具有“Windows 身份验证”“可用”?
从我安装并当前在“匿名访问”下运行的应用程序开始,我想检测:
- “Windows 身份验证”组件实际上已经安装在 IIS 中(例如某些 IIS7 没有 默认安装);还有...
- “Windows 身份验证”实际上是在我的虚拟根/位置上“启用”的。
我希望此信息让管理员知道他是否需要在 IIS 中采取措施在他实际尝试在我的应用程序上打开它之前。
(因此,例如,我认为 IIS7: How to define that windows authentication is turned on? 对我没有帮助,因为它正在查看它是否已经为我的应用程序启用;我想知道它是否已安装/可以开启。)
我的“解决方案”需要与 7 之前的 IIS 版本以及 7 本身一起工作(或至少不会“失败”),所以如果有差异,我需要知道。谢谢。
【问题讨论】:
-
需要支持哪些版本的IIS?您需要支持 IIS 1.0(Windows NT 3.51 插件)吗?
-
:-) 我希望 like 支持回到 IIS 5 和 6,但如果解决方案只有 7,我可以接受,前提是我可以测试 7/not中断较旧的 IIS 主机。
-
对于#1,我想我可以按照learn.iis.net/page.aspx/135/discover-installed-components 路由并检查注册表中的“WindowsAuthentication”(就像我从“IIS 元数据库兼容性”的安装程序中所做的那样),看起来很乱,但如果没有其他可用吗?但是对于#2,我认为注册表不会告诉我?
-
@JonBrave,
applicationHost.config文件也可以用来判断是否安装了windows认证。您所要做的就是在 globalModules 部分中查询一个名为“WindowsAuthenticationModule”的模块(这很容易)。不幸的是,我不得不提升应用程序池身份的权限来查询 applicationHost.config 文件...
标签: asp.net iis iis-7 windows-authentication