Perfiles de Usuarios ASP.NET & MVC

Una de las dudas más habituales en los foros de ASP.NET, es como mantener una variable disponible para un usuario. Lo primero que se nos puede pasar por la cabeza es utilizar la sesión para guardar esta información, pero desde ASP.NET 2.0 tenemos otras alternativas más adecuadas para estas cosas y además nos puede servir tanto para usuarios anónimos, como para usuarios autentificados.

  ¡¡ No tenemos que utilizar la sesión para todo !!!  y tanto nos sirve para ASP.NET como para ASP.NET MVC 

Usuarios autentificados.

Una vez el usuario se ha autentificado, se asocia el perfil a la identidad del usuario en el contexto actual system.web.httpcontext.user 

Usuarios anónimos

El perfil para los usuarios anónimos no está habilitada de forma predeterminada y hay que especificarlo de forma explícita.

Para poder tener estas propiedades del perfil habilitadas para los usuarios anónimos ASP.NET crea una cookie donde se establece una identidad única para el usuario y poderlo identificar cada vez que el usuario acceda a la página web. Esta cookie tiene una caducidad de 70 días y se renueva automáticamente cuando el usuario accede al sitio.

Si necesitamos controlar cuando un usuario pasa de ser anónimo a usuario autentificado, podemos controlar este paso en el momento que el usuario se autentifica y se lanza el evento MigrateAnonymous incluido en el fichero Global.asax.

Tipos Soportados

Si no se especifica el tipo del dato que queremos mantener, por defecto esta propiedad se guardara como string, pero podemos guardar tipos escalares (texto, números, fechas) tan solo especificando el tipo en la configuración de la propiedad.

image

Para trabajar con tipos complejos o propios tenemos que especificar el tipo de serialización que queremos utilizar.

Nos tenemos que acordar de marcar nuestras clases como serializables para no tener problemas al guardar los datos.

namespace Demo.Profile
{
    [System.Serializable]
    public class Persona
    {
        public string Nombre { get; set; }
        public int Edad { get; set; }
        public DateTime Cumple { get; set; }
    }
}

Y cuando especificamos el tipo en el fichero de configuración no nos tenemos que olvidar el namespace.

image

Proveedores

Otra de las ventajas para utilizar los perfiles de usuario es que se basan en los famosos proveedores de ASP.NET y podemos definir donde guardar esta información, en base de datos, un fichero xml, etc.

1000_18_249_Aa478948_asp2prvdr0101en-usMSDN_10

Para este ejemplo he utilizado la tabla de sqlExpres que viene por defecto con nuestras aplicaciones ASP.NET.

TablasProfile

Utilizar los Perfiles de Usuario

Una vez que tenemos todo configurado ya podemos comenzar a utilizar los perfiles según nuestras necesidades.

Lo primero que podemos necesitar es actuar dependiendo si el usuario actual es un usuario anónimo o es un usuario autentificado “Profile.IsAnonymous” y establecer el valor de las variables que tenemos configurado en el perfil, finalmente nos tenemos que acordar de guardar la modificaciones y listos.

Guardamos tipos escalares:

GuradarProfile

Guardamos tipos complejos:

PersonaProfile

Luego dispondremos de esta información para toda la aplicación y para este usuario.

RecuperarProfile

Con esto lo tenemos todo de una manera fácil y persistente. Recordar que NO todas las aplicaciones ASP.NET viven de las sesiones y desde ASP.NET2.0 disponemos de esta alternativa que podemos utilizar incluso con las aplicaciones MVC.

CrossPosting: http://mrubino.net/

[Webcast TechNet] Internet Explorer 9 en Windows 7 – Utilizando Pinned Sites

Siguiendo con la serie de webcast que MSDN LATAM está haciendo sobre Internet Explorer 9 en estos últimos meses, os invito a presenciar este miércoles una nueva entrega sobre el anclaje de sitios web con IE9 en windows 7.

Se que un miércoles en el que juega el Barça es mucho pedir que asistáis, pero espero veros a todos 😉

Webcast TechNet: Internet Explorer 9 en Windows 7: Utilizando Pinned Sites

Miércoles, 26 de enero de 2011 02:00 p.m.Bogotá – «20:00 España»
Duración:60 Minutos

Moderador(es): Marc Rubiño Ramírez
Idiomas: Español.
Productos: Otros, Windows 7, Windows Internet Explorer 9.

Público: Generalista de IT.

Información general del evento

Descubra como la navegación web es más fácil en el Windows Internet Explorer 9, un navegador con características que se integran a la perfección con el sistema operativo Windows 7. Asista a este Webcast para aprender cómo puede utilizar los Pinned Sites en función de acceder a sus sitios web favoritos directamente desde la barra de tareas de Windows sin tener que abrir primero el navegador. Con ayuda de los Pinned Sites, la aplicación web es compatible con los estándares del centro de la experiencia del usuario. Después de esta sesión, usted debe saber cómo activar la aplicación en un sitio fijado y cómo se puede utilizar simple JavaScript para mejorar la experiencia de sus clientes.

Registro:

https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032473007&EventCategory=4&culture=es-AR&CountryCode=AR

 

 

 

Free eBook – Diseño Ágil con TDD

Diseño Ágil con TDDYa podemos contar con un libro sobre TDD en Castellano “Diseño Ágil con RDD de Carlos Blé Jurado” y a demás con la posibilidad de descarga gratuita.

Hay que agradecer que estas iniciativas no caigan en saco roto y podamos disfrutar del esfuerzo de gente que aporta sin esperar nada a cambio.

Os recomiendo que deis un vistazo a este libro y si os gusta compréis la versión en papel.

http://www.lulu.com/product/file-download/dise%c3%b1o-%c3%81gil-con-tdd/6267428

Todo aquel que esté interesado en temas Ágiles les recomiendo que se pasen por la web del grupo http://www.agile-spain.com que tiene cantidad de recursos y artículos muy interesantes.

Agilicemos nuestros proyectos 😉

CrossPosting: http://mrubino.net

Material Remix 2010 “templates”

Después de mi experiencia en el Remix que me ha dejado un sabor de boca agridulce. Dulce por la gran oportunidad y experiencias que siempre se viven en este tipo de eventos, con unas 400 personas en el auditorio y otras 4.000 personas siguiendo el evento online. Agrio porque mi ponencia se tubo que retrasar y al ser el último no tuve nada de tiempo para poder explicar tranquilamente todos los ejemplos que tenía preparados y no quería desesperar a la gente que ya estaba muy cansada de todo el día.

Pero de todas las experiencias hay que aprender y esta no será menos. Ahora os dejo la presentación y los ejemplos para que podáis experimentar con las plantillas de cliente con JQuery.

Espero veros en la próxima 😉

image

Podéis acceder a las demos :         Zip

 

 

CrossPosting: http://mrubino.net

Material WebCast MSDN & BCN Reload II

Últimamente he estado muy liado y no he tenido tiempo de aportar casi nada, pero he tenido la suerte de poder participar en algún que otro evento donde como siempre me lo he pasado genial.

Esta vez adjunto la presentación de la charla que se organizó en el grupo de usuarios BCNDev para su relanzamiento después de estar un tiempo sin hacer eventos.

En esta charla se presenta el nuevo motor script de Internet Explorer 9 y su excelente compatibilidad con el estándar EcmaScipt5.

image

Si prefieres ver esta charla gravada la repetimos para MSDN LATAN como webcast y la puedes ver cuando te apetezca desde:

Webcast MSDN: Integración JavaScript Nativa en IE9 «Code Name Chakra»

CrossPosting: http://mrubino.net

Webcast MSDN: Integración JavaScript Nativa en IE9 "Code Name Chakra"

Recordad Hoy «Miércoles 24 Noviembre» a las 8:00PM España – 2:00PM Bogotá.

Tendremos el Webcast MSDN: Integración JavaScript Nativa en IE9 «Code Name Chakra» El objetivo de esta sesión es presentar todas las mejoras y todas las posibilidades que podemos encontrar con el nuevo motor script integrado en el nuevo navegador de Microsoft.

Registro:

https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032463427&EventCategory=4&culture=es-AR&CountryCode=AR

 

Potencia tus Chakras con IE9

Recordad que este viernes  19 de Noviembre, de 15:30 a 20:40 tenemos el BcnDev Reloaded V2.0

Con una agenda muy buena podemos pasar una tarde muy entretenida.

AGENDA

15:30 – Registro
16:00 – Introducción.
16:15 – Sacando partido a las CPU Multicore con .NET 4.0.
17:05 – Windows Phone 7 – Introducción al desarrollo.
17:55 – Potencia tus Chakras – JavaScript Nativo con IE9
18:45 –El comportamiento como test: Behaviour Driven Development ( BDD ).
19:35 –¡Basta ya de hello world’s! Entity Framework 4.0 a fondo.
20:25 – Conclusiones y despedida.

Cuándo: Viernes 19 de Noviembre, de 15:30 a 20:40.

Dónde: Parc Tecnològic Barcelona Nord, C/Marie Curie s/n, Nou Barris, Barcelona. http://www.cibernarium.com/

Coste: Gratuito.

Información y registro: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032468945&Culture=es-ES

Los que estéis por Barcelona quedáis invitados 😉

[Tip] Adjuntar datos al proceso IIS

Estoy en un proyecto que tenemos un servicio WCF configurado directamente en el servidor IIS, pero cada vez que arrancamos el servicio para debugar nos pide permisos para adjuntar los datos al proceso actual del IIS. Eso más que un problema es un incordio y explicaré porque sale y como evitar este mensaje.

IISconf6

La verdad es que no le había dado mucha importancia al mensaje porque solo es un aviso, pero resulta muy incomodo aceptar el mensaje cada vez que arrancas el servicio.

El problema como nos podemos imaginar es de permisos y tiene una solución muy sencilla.

Como estamos ejecutando el servicio en IIS en vez de utilizar directamente el servidor web de Visual Studio, nos tenemos que asegurar que el usuario que lanza el proceso tenga suficientes permisos.

Lo primero que tenemos que hacer es abrir al administrador del IIS tecleando en el menú ejecutar “inetmgr”.

Una vez que tenemos abierto el IIS Manager vemos el Pool de Aplicaciones o grupos de aplicaciones.

image

Y lo ideal sería crear un nuevo grupo de aplicaciones para nuestra aplicación, una vez que la tengamos creada, seleccionamos propiedades avanzadas y modificamos el usuario que lanza el proceso “Identidad”.

IISconf

 

Seleccionamos la cuenta de NetworkService para tener los permisos necesarios para ejecutar el proceso sin problemas.

IISconf2

 

IISconf3

Una vez que ya tengamos el pool creado seleccionamos el directorio virtual del servicio y vamos las propiedades avanzadas.

Modificamos el grupo de aplicaciones y le asignamos el nuevo grupo que hemos creado con la nueva configuración.

   IISconf5  

Ahora nuestro servicio web o aplicación web correrá en el grupo de aplicaciones que hemos creado especialmente para ella y además el servicio correrá con los permisos de usuario de red, con lo que no volveremos a tener más avisos incordiantes y molestos a la hora de debugar la aplicación web.

CrossPosting: http://mrubino.net