Pregunta

Estamos tratando de ejecutar un conjunto de tareas administrativas en el servidor a través de una consola web de administración. La consola se ejecuta con suplantación como los administradores Actualmente usuario conectado, y sólo en el equipo local se les permite entrar. En este momento funciona para la mayoría de los casos, pero estamos teniendo problemas cuando se ejecuta en la UAC.

El primer número es un bloqueador: parece que los administradores no conseguir el papel "BUILTIN \ Administradores", incluso si son un administrador en el cuadro local. Esto puede evitar que incluso entrar en la consola de administración, ya que estamos usando la notación <allow roles="BUILTIN\Administrators"> web.config para especificar la seguridad. Sospecho que las únicas soluciones aquí son o bien ejecutar la aplicación ASP.NET como SYSTEM, o para permitir que más usuarios y hacer un permisos más granulares comprobar en el código. Alguna otra idea? ¿Hay alguna manera de inyectar una solicitud de elevación en el incorporado en los permisos de ASP.NET comprobar?

El otro problema es que queremos ejecutar algunos comandos que requieren acceso de administrador. El usuario que visita el sitio es un administrador y se suplanta correctamente, pero cuando nos genera un proceso que falla debido a la falta de privilegios de administrador. La respuesta clara es elevar durante la duración de dicho comando. Hay soluciones que le permitirá elevarme temporalmente por hacerse pasar por un nombre de usuario y una contraseña específica, pero preferiría no tener que pedir al usuario validado ya-por su contraseña. ¿Hay algún truco para elevar el usuario actual?

(puedo entender por qué el equipo de ASP.NET podría tratar de hacer este disco, por lo que las páginas web no pueden aprovechar invisible de un administrador de visitar el sitio web ... pero seguro que debe haber alguna manera de pro gramaticalmente declarar que el código necesita derechos de administrador completos, advirtiendo apropiadamente el administrador de IIS de sus intenciones?)

Hay una serie de respuestas para Windows Forms aplicaciones, tales como: Cómo elevar los privilegios sólo cuando es necesario? y File.Exists volviendo falsa desde un recurso compartido de red pero estoy esperando para encontrar uno que funcione con ASP.NET ...

Gracias Steve

¿Fue útil?

Solución

Hemos sido capaces de lograr un nivel de representación "más alto" de que el usuario accediendo a la página web al permitir que el servidor para la delegación en el Directorio Activo. Por Microsoft, You can think of delegation as a more powerful form of impersonation, as it enables impersonation across a network. Es posible que no tenga que ir a través de la red, pero puede resolver sus problemas de seguridad.

Aquí hay algunos recursos sobre la configuración de delegación, espero que esto le ayudará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top