Получение конфигурации «system.webServer / security / authorization» с помощью API-интерфейса Microsoft.Web.Administration - PullRequest
0 голосов
/ 06 сентября 2010

Я пытаюсь использовать API-интерфейс Microsoft.Web.Administration для доступа к разделу «system.webServer / security / authorization» (по текущему пути запроса), чтобы узнать, могут ли анонимные пользователи («*») получить доступ.1001 *

Для этого я пытаюсь получить доступ к конфигурации раздела с помощью:

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>

К моему удивлению, возвращаемый объект является экземпляром ConfigurationSection с нулем ChildElements.

Почему это так?

Заранее спасибо.

1 Ответ

1 голос
/ 07 сентября 2010

Посмотрев схему конфигурации в C: \ Windows \ System32 \ inetsrv \ config \ schema \ IIS_schema.xml, я обнаружил, что элементы в элементе авторизации фактически являются коллекцией.

Это означает, что дляполучить элементы коллекции, я должен использовать метод GetCollection () вместо доступа к свойству ChildElements:

     WebConfigurationManager.GetSection("system.webServer/security/authorization", HttpContext.Current.Request.Path).GetCollection()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...