Páginas personalizadas

Hoy me preguntaban como tener páginas personalizadas para cada usuario, y la verdad si usáis el MemberShip de Asp.Net es algo muy sencillo. Os explico lo que debéis hacer.


Para empezar debéis tener creados diferentes Themes, lo que vamos a hacer es guardar en el profile (perfil) del usuario que theme tiene escogido y hacer la siguiente configuración en el Web.Config:







1
2
3
4
5
6
      <!—En el Web.Config, dentro de System.Web–>
<profile>
<properties>
<add name=»Theme» type=»String» allowAnonymous=»true»/>
</properties>
</profile>

Web.Config


Ahora vamos a ver como guardar esa configuración el perfil. Os recuerdo que es necesario que el usuario haya iniciado sesión, si a que usuario se lo vamos a guardar¿?.


Para guardarlo debemos usar el siguiente código:







1
2
3
        ‘Editar perfil, es necesario tener iniciada la sesión
Profile.SetPropertyValue(«Theme», «Nombre del theme»)
Profile.Save()

Guardar el perfil


Ahora lo que nos queda es obtener esa propiedad del perfil y usarla en la página, aviso muy importante, las selecciones de themes se deben hacer en el evento PreInit, ya que una vez que la página sea renderizada no se podrá cambiar el aspecto total de la página:







1
2
        ‘Cambiar theme, en el evento PreInit, es necesario tener iniciada la sesión
Me.Theme = Profile.Item(«Theme»)

Código del evento PreInit


Espero que os sea útil y si necesitáis ayuda con temas, membership, etc… bueno cualquier tema de asp.net, no dudéis en mandarme un email y yo os ayudo.


 

3 thoughts on “Páginas personalizadas

  1. Hice una actualización de este post, antes ponía que determinar el theme se debe de hacer en el evento PreRender, pues estaba aquivocado, debe ser en el PreInit o antes.

  2. hey y si quisieras cambiar el tema para todo el sitio pro que como lo estas explicando solo funsiona para la pagina en la que sobre escribiste el donde definiste el evento preinit

Deja un comentario

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