Foros del Web » Programación para mayores de 30 ;) » .NET »

menu personalizado en aplicacion web

Estas en el tema de menu personalizado en aplicacion web en el foro de .NET en Foros del Web. Hola, Alguien me puede explicar como puedo hacer un menu personalizado? Es decir, que segun que usuario loguee en la apliación salgan unos enlaces u ...
  #1 (permalink)  
Antiguo 24/08/2007, 06:34
 
Fecha de Ingreso: enero-2007
Mensajes: 40
Antigüedad: 17 años, 3 meses
Puntos: 0
menu personalizado en aplicacion web

Hola,
Alguien me puede explicar como puedo hacer un menu personalizado? Es decir, que segun que usuario loguee en la apliación salgan unos enlaces u otros.
Tengo una pagina Login.aspx y si el login es con exito va hacia una página Default.aspx. En Default.aspx está el menú. La autenticación de los usuarios esta basada en formularios. Los usuarios y sus roles están en SQL Server. Los he creado con el Administrador de Sitio Web.

He estudiado el web.siteMap, he puesto algunos elementos siteMapNode. He puesto el control Menu en la página Default.aspx. Le he asignado un SiteMapDataSource que hace referencia al fichero web.sitemap. En el fichero web.config he puesto

<configuration>
<system.web>
.......
<roleManager enabled="true" />
<authentication mode="Forms" />
<authorization>
<deny users="?" />
</authorization>
.....

</system.web>
</configuration>


En web.sitemap he puesto cosas como...

<siteMapNode title="..." description="..." roles="*">
<siteMapNode title="..." description="..." url="..." roles="Administrator">
</siteMapNode>
<siteMapNode title="..." description="..." url="...." roles="Administrator">
</siteMapNode>
<siteMapNode title="..." description="..." url="..." roles="Administrator,Manager,Tester,Developers">
</siteMapNode>
</siteMapNode>

Ya no se como seguir, estoy algo perdido. Alguien puede decirme que puedo hacer para que me salgan unos enlaces y otros no segun el usuario que hace login??

Gracias.
  #2 (permalink)  
Antiguo 24/08/2007, 06:53
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Re: menu personalizado en aplicacion web

Si deseas mira este menu, puede que te sea de utilidad.

http://www.skmmenu.com/menu/Examples/

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 14/11/2008, 14:07
 
Fecha de Ingreso: noviembre-2008
Mensajes: 1
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: menu personalizado en aplicacion web

Muy mala la ayuda anterior,

1. Crea tus site maps, por ejemplo Web1. sitemap, Web2.sitemap
2. Anda al web.config y agrega estos sitemap, que se definiran como proveedores, para este ejemplo la etiqueta sitemap debe quedar asi:

<siteMap defaultProvider="XmlSiteMapWeb1" enabled="true">
<providers>
<add name="XmlSiteMap1"
description="SiteMap Web1."
type="System.Web.XmlSiteMapProvider"
siteMapFile="Web1.sitemap"
securityTrimmingEnabled="true" />

<add name="XmlSiteMapWeb2"
description="SiteMap Web2."
type="System.Web.XmlSiteMapProvider"
siteMapFile="Web2.sitemap"
securityTrimmingEnabled="true" />
</providers>
</siteMap>

4. En la pagina donde desplegarás los menus, en modo de diseño arrastra el objeto SiteMapDataSource y un Menu.

5. En el Menu, el atributo "Choose Datasource" selecciona el "SiteMapDataSource1"

6. Ahora nos toca llenar el SiteMapDataSource con los WebSiteMap dependiendo de los roles, como los roles vienen de una bdatos en la pagina debes recibir el rol con una "Session" por l que elcodigo seria algo asi:

protected void Page_Load(object sender, EventArgs e)
{
if (Session["rol"].ToString() == "administrador")
{
SiteMapDataSource1.SiteMapProvider = "XmlSiteMapWeb1";
}
else if (Session["rol"].ToString() == "jefe area")
{
SiteMapDataSource1.SiteMapProvider = "XmlSiteMapWeb2";
}

}

7. sino te muestra los menus, prueba colocando en los siteMaps el atributo rol = "*", ya que nosotros los roles los tomamos de una bdatos y no la controlamos por formulario. Ejemplo Web1.sitemaps:

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode title="Inicio" description="Inicio"
url="~/Index.aspx" >
<siteMapNode title="Udm"
description="Maestro Udm"
roles="*">
<siteMapNode title="Desplegar Udm"
description="Desplegar Unidades de Medidas"
url="~/Desplegar_Udm.aspx" />
<siteMapNode title="Crear Udm"
description="Crear Unidades de Medidas"
url="~/Crear_Udm.aspx" />
<siteMapNode title="Editar Udm"
description="Editar Unidades de Medidas"
url="~/Editar_Udm.aspx" />
<siteMapNode title="Eliminar Udm"
description="Eliminar Unidades de Medidas"
url="~/Eliminar_Udm.aspx" />
</siteMapNode>
<siteMapNode title="Subsecciones"
description="Maestro de Subsecciones"
roles="*">
<siteMapNode title="Training"
description="Training"
url="~/Training.aspx" />
<siteMapNode title="Consulting"
description="Consulting"
url="~/Consulting.aspx" />
<siteMapNode title="Support"
description="Support"
url="~/Customers/Support.aspx" />
</siteMapNode>
</siteMapNode>
</siteMap>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:05.