C sharp - Problema con roles y sitemap

 
Vista:

Problema con roles y sitemap

Publicado por moncholv (1 intervención) el 08/08/2007 12:50:54
Muy buenas, estoy creando por primera vez una aplicación con login con el framework 2.0 y tengo el siguiente problema

Me he creado mi propia página de login, y después de consultar la base de datos y ver que es correcto y obtener los roles, hago lo siguiente para asignarselos al usuario con lo siguiente

GenericIdentity objIdentity = new GenericIdentity(login);
//Aqui obtengo los roles, que supongamos que son "administrador" y "lectura"

String[] recursosStringArray = new String["administrador", "lectura"];

GenericPrincipal objPrincipal = new GenericPrincipal(objIdentity, recursosStringArray);
HttpContext.Current.User = objPrincipal;

Luego en el web.config tengo lo siguiente

<authentication mode="Forms">
<forms loginUrl="Login.aspx" protection="All" timeout="30" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="Login.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
</authentication>
<authorization>
<deny users="*" />
</authorization>
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider"
description="Default SiteMap provider."
type="System.Web.XmlSiteMapProvider "
siteMapFile="Web.sitemap"
securityTrimmingEnabled="true" />
</providers>
</siteMap>
<sessionState mode="StateServer"/>

Le pongo a todos los elementos del web.sitemap roles="*", menos a dos que les pongo roles="administrador" y roles="bob".
Entro con un usuario que tiene el rol de administrador, y muestra todos los elementos menos el que tiene como rol a "bob". Es decir todo perfecto.
Por cierto que el control que uso para mostrar los elementos (vinculos), es un Menu de asp, que se encuentra dentro de una pagina de plantilla.

Ahora el problema viene cuando le doy a cualquiera de esos enlaces que me muestra (para cargar paginas que se incluiran dentro del contenido de la plantilla), ya que HttpContext.Current.User.Identity no tiene ninguno de los valores que se le asignan en la pagina de login, y me lleva a esta ultima.
Lo raro, es que al cargar los datos de la pagina de plantilla, en esta si se mantienen los valores de HttpContext.Current.User.Identity

Y eso es todo. Si he conseguido explicarme bien... y alguien sabe que me falta, un poco de ayuda, por favor...

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder