Разрешения, необходимые для использования Microsoft.Web.Administration - PullRequest
2 голосов
/ 22 января 2012

Я пытаюсь использовать API управления IIS 7, но застрял с проблемой безопасности.Мое приложение - обычный сайт ASP.NET, работающий на .NET 4 (интегрированный конвейер).На компьютере установлена ​​Windows 7 x64 (пул приложений по умолчанию, работает под ApplicationPoolIdentity, x64).Сайт использует следующие параметры:

    <identity impersonate="true" />
    <authentication mode="Windows" />
    <customErrors mode="Off" />
    <authorization>
        <deny users="?" />
    </authorization>

Мой сайт пытается прочитать информацию о других сайтах через API управления IIS (на локальном хосте).Я вошел в систему как член локальных администраторов.В IE я пытаюсь открыть свою страницу, но получаю это:

Site 'mysite' at 'myhost' is unknown.System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 
at Microsoft.Web.Administration.Interop.IAppHostProperty.get_Value() 
at Microsoft.Web.Administration.ConfigurationElement.GetPropertyValue(IAppHostProperty property) 
at Microsoft.Web.Administration.Site.get_State() 

Я не понимаю, почему.Я чертовски уверен, что код работает в контексте олицетворения моей учетной записи (могу видеть, что это отладчик наблюдает System.Threading.Thread.CurrentPrincipal).Что я делаю не так?

ps

UAC включен, но я считаю, что это не важно.Проверены разрешения NTFS для папки C: \ Windows \ system32 \ inetsrv \ config - полный доступ для администраторов.

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

UAC действительно является корнем всего зла.Поведение подражания нарушается, когда оно включено.Здесь что-то действительно слишком сложно: (

Когда UAC включен и текущий контекст безопасности олицетворен, руководитель сообщает, что он не является членом локальной группы администраторов. Но он есть. Это как-то связано с интерактивным/ неинтерактивные сеансы.

0 голосов
/ 22 января 2012

Попробуйте установить временный каталог в web.config в папку с полными разрешениями.

<compilation tempDirectory="c:\temp" ... ></compilation>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...