2010-03-10 2 views
3

Мы пытаемся запустить набор административных задач на сервере с помощью консоли веб-администрирования. Консоль запускается с олицетворением в качестве текущего зарегистрированного пользователя, и только администраторы на локальном компьютере могут войти в систему. Сейчас это работает в большинстве случаев, но у нас возникают проблемы при работе в UAC.Временное предоставление повышенных прав администратора для кода ASP.NET

Первая проблема - блокиратор: кажется, что администраторы не получают роль «BUILTIN \ Administrators», даже если они являются администраторами локального окна. Это может помешать им даже попасть в консоль администратора, так как мы используем нотацию web.config <allow roles="BUILTIN\Administrators"> для указания безопасности. Я подозреваю, что единственными решениями здесь являются либо запуск приложения ASP.NET как SYSTEM, либо предоставление большего количества пользователей и выполнение более детальной проверки прав доступа в коде. Любые другие идеи? Есть ли способ вставить запрос на высоту во встроенную проверку прав доступа ASP.NET?

Другая проблема заключается в том, что мы хотим запустить некоторые команды, требующие доступа администратора. Пользователь, посещающий сайт, является администратором и правильно выдается за него, но когда мы запускаем процесс, он терпит неудачу из-за отсутствия прав администратора. Ясным ответом является возвышение на протяжении всей этой команды. Есть решения, которые позволят мне временно поднять, выдав конкретное имя пользователя и пароль, но я бы предпочел не запрашивать у него уже проверенного пользователя пароль. Существуют ли какие-либо трюки для подъема текущего пользователя?

(Я могу понять, почему команда ASP.NET может попытаться сделать это трудно, так что веб-страницы не смогут воспользоваться невидимым преимуществом администратора, посещающего веб-сайт ... но, безусловно, должен быть какой-то способ грамматически заявляют, что код должны полные права администратора, надлежащим образом предупреждая администратор IIS своих намерений)

Есть целый ряд ответов для приложений, такие как Windows Forms: How to elevate privileges only when required? и File.Exists returning false from a network share , но я надеюсь найти тот, который будет работать с ASP.NET ...

Thanks Steve

+0

У меня тоже есть эта проблема. Вы когда-нибудь находили ответ? –

+0

Также ища ответ на этот вопрос. – roryf

+0

Вы когда-нибудь использовали какие-либо ресурсы, которые я предоставил в своем ответе? Или вы выбрали альтернативный маршрут? – Peter

ответ

1

Мы смогли достичь «высшего» уровня олицетворения от пользователя, который в настоящее время обращается к веб-сайту, включив сервер для делегирования в Active Directory. Для Microsoft, You can think of delegation as a more powerful form of impersonation, as it enables impersonation across a network. Возможно, вам не придется проходить через сеть, но она может решить ваши проблемы с безопасностью.

Вот несколько ресурсов по настройке делегирования, надеюсь, это поможет вам.

Смежные вопросы