我正在尝试使用Microsoft.Web.Administration API访问“system.webServer / security / authorization”部分(在当前请求路径中),以查看匿名用户(“*”)是否可以访问。 / p>
要做到这一点,我试图通过以下方式访问部分配置:
WebConfigurationManager.GetSection(HttpContext.Current, "system.webServer/security/authorization")
我在web.config限制对特定角色的访问的路径上尝试了这个,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" roles="MyRole" />
</authorization>
</security>
</system.webServer>
</configuration>
令我惊讶的是,返回的对象是一个没有ChildElements的ConfigurationSection实例。
为什么?
提前致谢。
答案 0 :(得分:1)
在C:\ Windows \ System32 \ inetsrv \ config \ schema \ IIS_schema.xml中查看配置架构后,我发现授权元素下的元素实际上是一个集合。
这意味着要获取集合元素,我必须使用GetCollection()方法而不是访问ChildElements属性:
WebConfigurationManager.GetSection("system.webServer/security/authorization", HttpContext.Current.Request.Path).GetCollection()