SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => ASP .NET => Mensaje iniciado por: Javier Santamaria en Jueves 24 de Mayo de 2007, 12:10
-
Hola, que tal?
El problema que me surge ahora es que tengo que hacer una estructura de archivos de tal forma que haya una aplicacion inicial y desde esta se pueda llamar aplicaciones diferentes contenidas en ella. Me explico:
Tengo el siguiente arbol de directorios:
1. Carpeta raiz
1.1 Carpeta nivel 1 - Aplicacion inicial
1.2 Carperta nivel 1
1.2.1 Carpeta nivel 1.2
1.2.1.1 Caperta nivel 1.2.1 - Aplicacion 1
1.2.1.2 Caperta nivel 1.2.1 - Aplicacion 2
1.2.1.3 Caperta nivel 1.2.1 - Aplicacion 3
1.2.2 Carpeta nivel 1.2
1.2.2.1 Caperta nivel 1.2.2 - Aplicacion 1
1.2.2.2 Caperta nivel 1.2.2 - Aplicacion 2
1.2.3 Carpeta nivel 1.2
1.2.3.1 Caperta nivel 1.2.3 - Aplicacion 1
1.3 Carperta nivel 1
1.3.1 Carpeta nivel 1.3
1.3.1.1 Caperta nivel 1.3.1 - Aplicacion 1
1.3.1.2 Caperta nivel 1.3.1 - Aplicacion 2
1.3.2 Carpeta nivel 1.3
1.3.2.1 Caperta nivel 1.3.2 - Aplicacion 1
1.3.2.2 Caperta nivel 1.3.2 - Aplicacion 2
Pues bien cuando se ejecute cualquiera de las aplicaciones del arbol por primera vez se debe ejecutar la aplicacion inicial que es la de acceso al sistema (login) y la que muestra los menus dependiendo de los roles de los usuarios.
El problema que tengo es que no se como hacer esto y se me ocurren dos opciones:
1. Hacer una aplicacion diferente (entendiendo como tal abrir el visual studio y seleccionar create website) para cada una de las aplicaciones y luego ir llamando a las paginas de las otras aplicaciones dependiendo de las opciones de los usuarios.
2. Crear una unica aplicacion que contenga todas las paginas ordenadas con esa estructura de archivos y llamar a las paginas de las subcarpetas dependiendo de las opciones de los usuarios.
Creo que es mas facil la segunda opcion, pero esta me plantea una duda, que es la siguiente:
Podria de alguna manera ocultar la ruta completa de la pagina y mostrar solo lo que a mi me interese, es decir:
- Estoy en la aplicacion padre y la url es: http://localhost:4456/1.1/Login.aspx (http://localhost:4456/1.1/Login.aspx)
- Una vez que hace login y se carga el menu la url es: http://localhost:4456/1.1/Menu.aspx (http://localhost:4456/1.1/Menu.aspx)
- Cuando seleccione una opcion (por ejemplo la aplicacion 1 de la carpeta 1.2.1.1) me cargara la pagina que quiero, pero me gustaria que en vez de aparecer en la url: http://localhost:4456/1.1/1.2.1/1.2.1.1/Index.aspx (http://localhost:4456/1.1/1.2.1/1.2.1.1/Index.aspx)
apareciera esto: http://localhost:4456/1.1/Index.aspx (http://localhost:4456/1.1/Index.aspx) (omitiendo el resto de la ruta /1.2.1/1.2.1.1)
Espero vuestras respuestas, por favor es urgente.
Muchas gracias por adelantado.
-
me parece que te estas complicando mucho, puedes enviar cual era el requerimiento inicial?
Saludos,
-
Hola Sergio, no hay requerimiento inicial. Es decir, tengo que fijar la estructura para implementar aplicaciones en esa estructura y no sabia cual de las dos opciones elegir. No sabia si podria implementar aplicaciones dentro de otras aplicaciones o si seria mejor implementar solo una aplicacion y re-escribir las url's para dar la sensacion de que son aplicaciones distintas.
Gracias por las respuestas
Un saludo
-
en una aplicacion web, puedes tener varios directorios virtuales..
..pero eso va del lado del IIS.
Saludos,
-
Gracias de nuevo. Decidi tener una aplicacion y ejecutar funcionalidades en funcion de roles. Me parecio lo mas sencillo.
Ahora otra cosilla: Podria reescribir las URL's para que no se supiera el path exacto de la pagina .aspx y pareciera una aplicacion diferente cada funcionalidad?
Gracias de antemano
-
Asi es, puedes usar URL Rewriting.
En este link puedes encontrar varias opciones: URL Rewriting, URL Mapping en ASP.NET 1.X y 2.0 (http://geeks.ms/blogs/sergiotarrillo/archive/2007/01/30/9467.aspx).
saludos,