Cómo usar la administración Web integrada en ASP.NET en aplicaciones de producción

Una cuestión muy celebrada de ASP.NET 2.0 es que no es necesario «currarse» desde cero toda la funcionalidad de autenticación, autorización, etc… ya que gracias a las nuevas API basadas en proveedores para Membership y Roles junto con los controles de Login (que incluyen interfaces de usuario para casi todo lo que necesitemos desde autentiación hasta creación de usuarios, etc..) incorporados a la versión 2.0 apenas será necesario escribir código nunca.


El caso es que desde Visual Studio todo es muy fácil: basta con ir al menú «Sitio web·Administración de sitio Web» y nos aparece el flamante diálogo que vemos en la figura:



(pulsa para ver en tamaño real)


El caso es que con él configuramos todos los aspectos de nuestra aplicación relacionados con la seguridad: desde los proveedores que usaremos, pasando por los permisos de las carpetas y llegando a la definición de los primeros usuarios. Todo ello se guarda por defecto en una base de datos SQL Server creada para la ocasión y que tiene una estructura predefinida y unos procedimientos almacenados que usan Membership y Roles, y que podemos reproducir gracias a la herramienta de línea de comandos aspnet_regsql.exe.


Bien, el caso es que una vez terminada la aplicaicón la ponemos en un servidor IIS de verdad para que entre en producción y estamos la mar de contentos con nuestros usuarios. Pero, de repente, nos damos cuenta de que necesitamos más usuarios, de que necesitamos editar los que ya hay o cambiar cualquier otro aspecto de nuestra seguridad y la herramienta de configuración que tenemos en Visual Studio no está. ha desparecido y no podemos usarla en producción. :-((( De hecho si miramos por los foros de Internet y de Microsoft vemos que todo el mundo nos dice: «no hay nada que hacer», «constrúyete tu propia gestión de usuarios» o «menuda chapuza han hecho».


Bien, lo cierto es que la cosa no es tan terrible y realmente sí podremos hacer uso de la herramienta sin problemas. Veamos como…


Lo que mucha gente no sabe es que esta herramienta está incluida junto con su código fuente completo ¡¡en la instalación de las bibliotecas de tiempo de ejecución de ASP.NET 2.0!!. Es decir, está incluida en todos los equipos capaces de ejecutar ASP.NET 2.0, no sólo en los que tienen Visual Studio 2005 instalado. Para encontrarla basta con ir a la siguiente ruta:



C:WINDOWSMicrosoft.NETFrameworkv2.0.50727ASP.NETWebAdminFiles


Sabiendo esto sólo hay que hacer un par de cosas y saber trucarla para poder sacarle partido en cualquier aplicación, incluso en las que estén en producción.


Vete a IIS y en el servidor virtual de tu aplicación o en cualquier otro crea un directorio virtual que apunte a la ruta anterior. ¡OJO! es muy importante que esté en un directorio virtual y no directamente en el raíz de un servidor virtual por la forma en la que está construida la aplicación, así que crea uno con el nombre, por ejemplo, de «aspnetwebconfig».


En la pestaña de seguridad del directorio virtual deberás permitir la autenticación de usuarios ya que sólo con la anónima no podras hacerla funcionar. Pues deshabilitar la anónima (no se usa,así que da igual pero mejor quítala) y activa la autenticación integrada de Windows.


Muy importante: no olvides indicar que quieres usar ASP.NET 2.0 para este directorio virtual o recibirás errores puesto que por defecto se emplea ASP.NET 1.1. Usa la pestaña ASP.NET de tu IIS para conseguirlo:



Bien, una vez creado el directorio virtual de administración podrás administrar cualquier aplicación Web de ASP.NET 2.0 que tengas en esa máquina llamando a la página por defecto con dos parámetros especiales, de la siguiente manera (ejemplo):



http://localhost/aspnetwebconfig/default.aspx?applicationPhysicalPath=D:LogistiaCodigoLogistiaWeb&applicationUrl=/LogistiaWeb


Fíjate que los dos parámetros son los siguientes:


1) applicationPhysicalPath: La ruta física en el disco a la aplicación que quieres administrar. La herramienta de administración se encargará de leer su web.config y conectarse a las bases de datos pertinentes y ver los permisos de cada carpeta, etc…


2) applicationUrl: la ruta virtual base de tu aplicación, normalmente el nombre de la carpeta virtual que usas para acceder a ella. Puede estar en blanco.


Una última cosa importante: este sitio web de administración sólo funcionará en local, no permitiendo el acceso desde URLs remotas por cuestiones de seguridad. Pero te permitirá manejar cómodamente los usuarios, roles, parámetros de personalizaicón, seguridad, etc…

Sin categoría

14 thoughts on “Cómo usar la administración Web integrada en ASP.NET en aplicaciones de producción

  1. lo unico malo del solo local es que en los servidores hospedados jamas podras hacer uso de ello a través de internet y por supuesto tampoco a través de la maquina local, por tanto tendras que seguir programandote al menos el UI de tu membership

    🙁

  2. Cierto, Miguel, es un fastidio, pero al menos para los que tenemos servidores propios o instalamos en los de clientes va de maravilla.

    Por otro lado como está disponible el cóigo fuente se puede retocar con bastante facilidad para que permita el uso que queramos y quitar esta limitación. Por otro lado podemos aprovechar muchas de las pantallas para crear un gestor propio.

    A mi me parece que la limitación por defecto es una sabia decisión porque si no la seguridad de muchos sitios mal administrados podía ser un desastre total. Así el que lo «des-cape» sabe perfectamente lo que está haciendo y queda bajo su repsonsabilidad.

    saludos

    JM.

  3. Una consulta, tengo mi aplicacion y una de las tablas es usuario, entonces si deseo trabajar con el membership que debo hacer???, trabajaria con 2 tablas de usuario??? la de mi aplicacion y la creada por default aspnet_users???, pues si tuviera mas de 2000 usuarios no creoq tendria q insertarlos uno por uno.
    Agradeceria cualquier ayuda
    gracias

  4. La mejor opción es seguramente escribir un proveedor de Membership personalizado que te permita usar tu tabla en lugar de la que crea por defecto ASP.NET.

    Otra opción imagino que sería tratar de replicar los datos de tu tabla en Membership y usar sólo Membership ya que seguramente en tu aplicación se accede a la tabla de usuarios desde pocos sitios y no sería muy complejo sustituir las llamadas, pero no lo sé… habría que estudiarlo.

    Saludos

    JM.

  5. vale man solo tengo unas cuantas preguntitas:
    1.- Estoy haciendo mi pagina web en asp.net,y buneo estoy en la Herramienta adminsitracion de sitio web, estoy en la parte de crear un nuevo usuario el problema es que yo haog todo lleno el login, la contraseña, el correo, la pregutna secreta y cuando doy crear usuario me dice que la contraseña debe tener por lo minimo 7 caracteres y que no sean aphanumericos, pero mi contraseña tiene 8 caracteres y ninguno es alphanumerico, todos son letras osea una palabar y eso em tiene loco no puedo seguir con mi trabajo dime que peude estar pasadon porque es lo que me atrasa.
    2. yo he creado mi sitio web en mi disco d y no en un servifdor virtual y no se si eso sera problema al momento de subirlo a un hostin gratuito haber si me dices como ahcerlo
    ******THE KING IS COMING*******

  6. Hola mi consulta es la siguiente, yo quiero acceder a esa pagina de administracion desde un link en mi sitio, es posible esto , la aplicacion esta en servidor donde no esta instalado el visual studio

  7. Quiciera crear cuentas de correos desde mi aplicacion asp.net que es lo que necesito sabes, y si tienes algun ejemplo seria genial.
    Gracias, Saludos

  8. Hola,
    He estado pruebas para hacer un sitio web y administrarlo. Hice unas pruebas para administrar la ASP :NET Configuration desde el sitio web virtual nuevo que hice en el IIS,
    Ahora recibo siempre un error que dice «Error. Vuelva a la página anterior e inténtelo de nuevo. » Incluso aunque lo abra desde el Visual Studio 2005, he probado a poner un connectionstring erroneo para que me de un error de conexcion a BBDD y así comprobar que no haya problema en la BBDD, pero me da el mismo error.
    He creado un proyecto web nuevo, y he intentado acceder a ASP.NET configuration y me devolvia el mismo error. He desinstalado y vuelto a instalar el Visual Studio 2005, y hecho de nuevo todas las comprobaciones de antes y siempre me da el mismo error.
    Por favor, alguien sabe a que se puede deber esto?
    Gracias

  9. Tengo problemas con Herramienta Administración de sitios Web ASP.net

    Tengo una aplicacion en Microsoft Visual Web Developer 2005 con SQLErver 2005

    Inclui la Herramienta Administración de sitios Web ASP.net para administracion de usuarios puedo ver la aplicacion crear usuarios y asignar permisos y en la BD veo que se crean los Usuarios, pero al entrar en el sitio siempre arroja:
    «Usuario o Contraseña incorrectos »

    tengo la siguiente linea en el webconfig:


    Que debo hacer??? que me falta por configurar????

  10. No consigo cambiar la contraseña (password) mediante la herramienta de Administración web integrada. He realizado la configuración de la seguridad con el asistente, he creado varios usuarios, pero sólo me permite jugar con la contraseña al momento de crear los usuarios, pero no al momento de editarlos.
    Agradeceré cualquier comentario a este email: pililo777 @ gmail punto com
    Gracias.

  11. como es posible que al crear un usuario me pida que le ponga la contraseña mayor de 7 caracteres y que no sean alfanumericos????
    Que quiere decir con eso?? que la contraseña no pueden ser numeros ni letras????

  12. Muchas graicias por toooodo!! funcionoo ala perfeccion y lo estube buscando por muuuucho tiempo!!! y no habia podido encontrar tal como lo necesitabaaa =) GRACIAS!!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *