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.