Membresía de ASP.NET 2.0 (I)

Introducción


La versión 2.0 de ASP.NET implementa un sistema de membresía mediante el cual es posible administrar y almacenar datos de usuarios, datos como nombre de usuario y password (Credenciales), funciones (Roles). Para poder hacer uso de ello, ASP.NET 2.0 nos ofrece una serie de clases para la utilización de dicha información. Decir también que ASP.NET, en esta versión 2.0, trae consigo la autenticación de formularios, por el cual podremos dar acceso a partes de nuestra aplicación web a usuarios logueados o usuarios logueados que pertenezcan a un determinado Rol (Administrador).


Sistema de membersía (MemberShip) y clases


El sistema de membresía está basado en un almacén de datos que permite albergar datos como usuarios, credenciales, nombre de usuarios y contraseñas, Roles, Profiles, preferencias de cada usuario en la aplicación web y otros datos necesarios. ASP.NET 2.0 ofrece soporte para distintos almacenes de datos, como son SQL Server o Active Directory. Nosotros nos centraremos en SQL Server y cómo configurar nuestros propios perfiles de proveedores personalizados, para añadir soporte a otros almacenes.


Para ello .NET Framework 2.0 nos ofrece una serie de clases para poder manejar la información de miembros, roles y perfiles. Estas clases son:



  • SQLMemberShipProvider (Para la gestión de miembros): Permite gestionar la información de los miembros en una aplicación ASP.NET con SQL Server como servidor de base de datos.
  • SQLRoleProvider (Para la gestión de roles): Permite gestionar la información de los roles de miembros en una aplicación ASP.NET con SQL Server como servidor de base de datos.
  • SQLProfilesProvider (Para la gestión de perfiles): Permite gestionar la información de los perfiles en una aplicación ASP.NET con SQL Server como servidor de base de datos.

Donde mejor puede ver un ejemplo es en el archivo machine.config alojado en el carpeta C:WINDOWSMicrosoft.NETFramework2.0.****CONFIG (**** corresponde a la versión que tengas instalado del Framework, lo normal que sea 2.0.50727), y ver como están configurados dichos proveedores, abajo pongo como estaría configurado el proveedor por defecto llamado «AspNetSqlMembershipProvider»:

<membership>
<
providers>
<
add name=«AspNetSqlMembershipProvider«
type=«System.Web.Security.SqlMembershipProvider,
System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a«
connectionStringName=«LocalSqlServer«
enablePasswordRetrieval=«false«
enablePasswordReset=«true«
requiresQuestionAndAnswer=«true«
applicationName=«/«
requiresUniqueEmail=«false«
passwordFormat=«Hashed«
maxInvalidPasswordAttempts=«5«
minRequiredPasswordLength=«7«
minRequiredNonalphanumericCharacters=«1«
passwordAttemptWindow=«10«
passwordStrengthRegularExpression=«»
/>
</providers>
</membership>

 <profile>
<providers>
<add name=«AspNetSqlProfileProvider»
connectionStringName=«LocalSqlServer»
applicationName=«/»
type=«System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
» />
</providers>
</profile>

<roleManager>
<providers>
<add name=«AspNetSqlRoleProvider»
connectionStringNameLocalSqlServer»
applicationName=»/»
typeSystem.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a» />
<add name=«AspNetWindowsTokenRoleProvider»
applicationName=»/»
typeSystem.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a
» />
</providers>
</roleManager>


Este proveedor se conecta con una instancia del SQL Server Express, y como se puede apreciar es importante la propiedad name donde se define el nombre de la cadena de conexión, en está cadena «LocalSqlServer», si observamos de nuevo los proveedores anteriores todos tienen en comun una propiedad connectionStringName, cuyo valor corresponde con el valor del nombre de la conexión, ¡E ahí la cuestion! jejeje… Fundamental este punto


<connectionStrings>


      <add name=«LocalSqlServer«


connectionString=«data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true«


providerName=«System.Data.SqlClient« />


</connectionStrings>


Destacar también en la cadena de conexión «…aspnetdb.mdf…». Este archivo al que hace referencia dicha cadena es la base de datos donde se almacena toda la información y referencia antes nombrado (Usuarios, Profiles, Roles, etc).


La configuración Web de ASP.NET


Visual Studio 2005 incorpora una herramienta llamada Configuración de ASP.NET la cual permite de forma sencilla administrar y crear la base de datos ASPNETDB.MDF. ¿Como podemos acceder a esta herramienta?


Muy sencillo, si tienes un proyecto ya creado o si no lo ha creado aun, ejecuta Visual Studio, vaya a Archivos > Nuevo > Sitio Web, dale un nombre al proyecto y aceptamos. Para entrar en dicho configurador, se puede acceder de dos formas diferentes, una sería en la barra de menus Sitio Web > Configuración de ASP.NET o desde el explorador de soluciones, como se muestra en la image siguiente.



Tras pulsar sobre dicho botón se levantara una página de configuración de ASP.NET, tal como se muestra en la imagen siguiente.



Como puede observar, dicha herramienta se divide en tres zonas bien diferenciadas que describo a continuación:



  • Seguridad

Cuando creamos una aplicación web nos interesa que tenga una cierta seguridad en toda la aplicación o en zonas concretas de esta ya que tenemos una serie de recursos que deseamos proteger y solo sean accesibles por tipo de usuario especificado. ASP.NET utiliza un sistema de seguridad que le permite restringir el acceso a cuentas de usuario específicas o a las funciones (Roles) a las que pertenecen las cuentas de usuario. Con la ficha Seguridad, puede administrar cuentas de usuario, funciones y reglas de acceso para el sitio Web. Antes de utilizar la ficha Seguridad por primera vez, utilice el Asistente para la configuración de seguridad para configuraciones de seguridad básicas para el sitio Web.



  • Aplicación

Esta zona se utiliza para administrar los valores de configuración del sitio y la aplicación Web utilizados con frecuencia.


Utilizar la ficha Aplicación para administrar lo siguiente:



  • Pares nombre/valor de la configuración de la aplicación.

La configuración de la aplicación consiste en pares nombre/valor que representan el texto de los valores configurables en la aplicación Web. Utilizar las configuraciones de la aplicación para almacenar la información de configuración personalizada, como las rutas de acceso a archivos, las direcciones URL del servicio Web XML, normalmente utilizada como texto, o cualquier información que desee mantener en una ubicación central y que pueda cambiar con facilidad.


Importante La configuración de la aplicación se almacena en el archivo como texto sin formato. Por lo tanto, debe tomar las medidas de seguridad apropiadas cuando utilice la configuración de la aplicación. No almacene información confidencial como nombres de usuario, contraseñas o cadenas de conexión de la base de datos en la configuración de la aplicación.



  • Configuración del Protocolo simple de transferencia de correo (SMTP).

Si el sitio Web requiere la capacidad de enviar un correo electrónico (por ejemplo, para enviar una contraseña a los usuarios), debe especificar el servidor SMTP que utiliza su sitio.



  • Estado de la aplicación.

Puede poner su aplicación fuera de conexión (apagarla) para realizar el mantenimiento o poner en conexión una base de datos nueva de Microsoft SQL Server Express.



  • Depuración y seguimiento.

La depuración y el seguimiento le permiten diagnosticar y corregir problemas con la aplicación Web, con la intención de utilizarlos durante el desarrollo. Al permitir la depuración, las páginas del sitio Web se compilan con información que los depuradores de .NET Framework o de Microsoft Visual Studio pueden utilizar para recorrer su código. Al permitir el seguimiento se genera información acerca de solicitudes Web individuales, encabezados HTTP que se envían con las solicitudes, el estado de los controles de la página y otros detalles acerca del procesamiento de páginas.



  • Proveedor

La zona Proveedor sirve para administrar el modo en que ASP.NET almacena datos para las características de la aplicación, como cuentas de usuario, funciones y otros valores de configuración.


ASP.NET utiliza clases de proveedores para administrar el almacenamiento de los datos para varias características, como la administración de suscripciones y de funciones. Una clase de proveedor es un componente que expone una funcionalidad ASP.NET específica, como la administración de la suscripción de las cuentas de usuario. Todas estas características de la aplicación requieren el almacenamiento de los datos. Aunque todas las clases de proveedores realizan las mismas características de la aplicación, cada proveedor puede almacenar datos de un modo distinto. Por ejemplo, las distintas clases de proveedor para la suscripción de ASP.NET pueden almacenar información de la cuenta de usuario de los siguientes modos:



  • En una base de datos de Microsoft SQL Server.
  • En el servicio del directorio Microsoft Windows Active Directory.
  • En una base de datos de usuario personalizada.

Todas estas clases de proveedor realizan el mismo grupo de tareas principales para administrar cuentas de usuario y usted interactúa con las clases de proveedor de su aplicación del mismo modo.


Recomiendo que antes de entrar de lleno en la aplicación de configuración de ASP.NET se compienze por el asistente, este se encuentra dentro de la ficha de seguridad y entraríamos en una serie de pasos, 7 para ser exactos, pasando desde el metodo de acceso (Windows o Formulario), configuración del proveedor, Definición de Roles (funciones), por ejemplo, es muy habitual tener alguien que administre nuestra aplicación web por lo que se suele crear el rol «Administrador», agregar usuarios y definición de reglas de acceso, aquí es donde se decide donde o que zonas están permitidas para unos usuarios concretos y cuales no.


Hasta aquí todo bien, ahora si cerramos el configurador de ASP.NET, y nos vamos al explorador de soluciones y refrescamos veremos aparecer en la carpeta App_Data el archivo ASPNETDB.MDF, es la base de datos que alojará todos nuestros futuros usuarios, nuestros roles o funciones, personalización de la aplicación de cada usuario, etc. También podemos crear una base de datos o utilizar otra base de datos que haga la misma función, pero esto lo comentaré en un proximo artículo donde entraré en más detalle.



Ya con todo esto, podemos hacer uso de los controles de Login, CreateUser, LoginView, etc.


Espero que os haya servido de ayuda este artículo. Proximamente pondré la segunda parte de Membresía. Hasta pronto!!


 

Visual Studio Code Name "Orcas" CTP Enero

Microsoft ya ha puesto a disposición de los desarrolladores la nueva versión de Visual Studio, con nombre en clave «Orcas» CTP de enero. Ocupa unos 3.5 Gigas, en el enlace que os pongo se puede bajar en 8 partes, 700 megas aproximadamente las 7 primeras y la última 50 Mb.


Con esta nueva entrega se pretende crear rapidamente aplicaciones inteligentes conectadas para la nueva experiencia del usuario, así como permitir a cualqier organización (Empresa) crear rapidamente proyectos más seguros, más manejables, y más confiables aprovechando la tecnología de Windows Vista y Office 2007.


System Requirements



  • Sistemas Operativos Soportados: Windows Server 2003; Windows XP Service Pack 2

  • Software Requerido:


  • Credenciales VPC:
    Después de que hayas descargado la imagen Base de Orcas CTP y las diferentes ocho partes a tu maquina local puedes lanzar dicha imagen en Virtual PC o Virtual Server y usuar las siguientes credenciales:



    • Nombre de usuario: Administrator
    • Password: P2ssw0rd

  • NOTA: Microsoft recomienda que despues de la instalación abras la sesión y cambias el password del administrador.

  • Procesador: 1.6GHz Pentium III+

  • RAM: 1 GB RAM*
    * La cantidad de memoria RAM depende de tu equipo local. Puede usar el administrador de tareas para identificar cuanta RAM física está disponible en tu máquina.


 Enlace:


http://www.microsoft.com/downloads/details.aspx?familyid=1ff0b35d-0c4a-40b4-915a-5331e11c39e6


 

Evento Onobanet: ¿Qué trae .NET 3.0?

El 22 de Febrero MSDN y OnobaNET, traen a Huelva el evento de lanzamiento del .NET 3.0. Tendremos la oportunidad de ver en detalle las nuevas funcionalidades del Microsoft .NET Framework 3.0.



  • Windows Presentation Foundation – el subsistema de presentación unificado para Windows, con el que crear una nueva generación de interfaces de usuario sobre .NET.

  • Windows Communication Foundation – desarrollo de aplicaciones distribuidas en nuevos modelos de comunicación como servicios web seguros, fiables y transaccionales capaces de interoperar a través de distintas plataformas.

  • Las capacidades de definición de flujos de trabajo declarativos que estarán disponibles para los desarrolladores a través del Windows Workflow Foundation, incluido en el .NET Framework 3.0.

  • Y por último veremos Sharepoint 2007, una plataforma única, integrada y ampliable que permite construir aplicaciones web con funcionalidad avanzada de visualización, búsquedas o gestión de contenidos entre otras.

    ¡Y todo ello desarrollando de principio a fin una aplicación de la conocida empresa ficticia De Hinojo Software!

 Aquí os pongo el Cartel del evento:




La agenda será la siguiente:


 


9:30 Registro.
10:00 Introducción.
10:30 Desarrollo de la capa de negocio con Windows Communication Foundation y Windows Workflow Foundation.
11:20 Creando una web pública con Microsoft Office SharePoint Server.
12:10 Construcción del cliente rico con Windows Presentation Foundation.
13:00 Cierre.