1 / 35

Jorge Oblitas

Jorge Oblitas. Consultor para los programas Panorama Box y DCE Soluciones Intranet premiadas en Perú y EE.UU. Creador del curso para la segunda estrella DCE Bajista desde 1984 Aficionado a los Golden Retrievers y Beagles. Consultor en tecnología asociada a la gestión del Conocimiento

skule
Download Presentation

Jorge Oblitas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jorge Oblitas Consultor para los programas Panorama Box y DCE Soluciones Intranet premiadas en Perú y EE.UU. Creador del curso para la segunda estrella DCE Bajista desde 1984 Aficionado a los Golden Retrievers y Beagles Consultor en tecnología asociada a la gestión del Conocimiento Ha sido miembro de los programas Microsoft Regional Director (desde el 2000) Microsoft Partner Advisory Council (2002)

  2. “Webcast Series” • Introducción a las ASP.NET para desarrolladores ASP/PHP • Introducción a las ASP.NET 2.0 para desarrolladores ASP.NET • Creación de aplicaciones Web con acceso a datos usando ASP.NET2.0 • Creando aplicaciones seguras a través del uso de membresía y manejo de roles con Visual Studio 2005 y ASP.NET 2.0 • Usando "Profiles" en ASP.NET 2.0 y localizando aplicaciones. • Extendiendo ASP.NET 2.0 a través del modelo basado en proveedores (provider model)

  3. Introducción a las ASP.NET para desarrolladores ASP/PHP Jorge Oblitas Inteligencia e Innovación Microsoft Regional Director

  4. Creando aplicaciones seguras a través del servicio de membresía y manejo de roles con Visual Web Developer Express beta 2 y ASP.NET 2.0 Jorge Oblitas Inteligencia e Innovación Microsoft Regional Director Peru – Andean Regionjorgeo@icuadrado.com

  5. Agenda • Servicio de Membresía (Membership service) • Membership API • Membership providers • Controles Login • Servicio de Manejo de roles • La clase Roles • Role caching • Role providers

  6. Membership Service • Servicio para administrar usuarios y credenciales • Acceso declarativo via el Web Site Admin Tool • Acceso programático usando las clases Membership y MembershipUser • La clase Membership provee servicios base • La clase MembershipUser representa los usuarios y provee servicios adicionales • Basado en providers para un almacenamiento de datos flexible

  7. Esquema del servicio Controles Login LoginStatus LoginView Otros controlesLogin Membership API Membership MembershipUser Membership Providers AccessMembershipProvider SqlMembershipProvider Otros Membership Providers Membership Data Access SQL Server Otros

  8. La clase Membership • Provee m[etodos est[aticos para llevar a cabo tareas claves de al trabajar con membresía • Crear y eliminar usuarios • Recolectar información sobre los usuarios • Generar contraseñas aleatorias • Validar logins • También incluye propiedades estáticas de tipo read-only static para recibir información acerca de la configuración del provider de membresía

  9. Métodos “principales” de la clase Membership Nombre Descripción CreateUser Agrega al usuario al membership data store DeleteUser Remueve el usuario del membership data store GeneratePassword Genera una contraseña aleatoria de un largo específico GetAllUsers Recoge una colección de objetos MembershipUser Representando a todos los usuarios registrados GetUser Recoge un objeto MembershipUser representando a un usuario UpdateUser Actualiza la información del usuario especificador ValidateUser Valida los logins basado enel nombre de usuario y la contraseña MaxInvalidPasswordAttempts Número máximo de intentos de loguearse fallidos

  10. Creando nuevos usuarios try { Membership.CreateUser (“Jorge", “MiPassword", “jorgeo@icuadrado.com"); } catch (MembershipCreateUserException e) { // por que fallo? switch (e.StatusCode) { case MembershipCreateStatus.DuplicateUsername: ... case MembershipCreateStatus.DuplicateEmail: ... case MembershipCreateStatus.InvalidPassword: ... default: ... } }

  11. Validando Logins if (Membership.ValidateUser (UserName.Text, Password.Text)) FormsAuthentication.RedirectFromLoginPage (UserName.Text, RememberMe.Checked);

  12. La clase MembershipUser • Representa a usuarios individuales registrados en el membership data store • Incluye varias propiedades para obtener y configurar información del usuario • Incluye métodos para obtener, cambiar y “resetear” contraseñas

  13. Propiedades “principales” de la clase MembershipUser Nombre Descripción Comment Almacenamiento para datos específicos del usuario CreationDate Día en que el usuario fue añadido al membership data store Email Email del usuario LastLoginDate Día del último login exitoso del usuario LastPasswordChangedDate Día dle último cambio de contraseña UserId Identificador del usuario generado por el membership provider UserName Nombre registrado del usuario

  14. Métodos “principales” de la clase MembershipUser Nombre Descripción ChangePassword Cambia la contraseña del usuario ChangePassword- QuestionAndAnswer Cambia la pregunta y la respuesta utilizada para recuperar la contraseña GetPassword* Obtiene la contraseña ResetPassword “Resetea” la contraseña y crea una nueva aleatoriamente * Works if Membership.EnablePasswordRetrieval is true

  15. Membership Providers • La membresía está basada en providers • El Provider provee la interface entre el servicio de membresía y el lugar físico donde se encuentran los datos * Will be removed from beta 2

  16. Configuración del Provider • Soporte a varios aspectos de la configuración • Cómo deben ser almacenadas las contraseñas ¿cleartext, hashed, encrypted)? • ¿Debemos habilitar recuperación de contraseña? • ¿El email debe ser único para cada usuario? • Se inicializa desde los archivos. config

  17. Cambiando la configuración del provider <membership defaultProvider="Icuadrado" userIsOnlineTimeWindow="15"> <providers> <add name="Icuadrado" type="System.Web.Security.SqlMembershipProvider, System.Web,… connectionStringName="ClubSiteDB" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="Icuadrado" requiresUniqueEmail="true" passwordFormat="Hashed"/> </providers> </membership>

  18. Membership

  19. Controles Login Control Descripción ChangePassword UI para cambiar contraseñas CreateUserWizard UI para crear nuevas cuentas de usuario Login UI para ingresar y validad nombres de usuario y contraseñas LoginName Muestra el nombre de usuario del usuario autenticado LoginStatus UI para hacer log in o log out LoginView Muestra diferentes vistas dependiendo de si el usuario está logueado o noy de acuerdo a los roles PasswordRecovery UI para recuperar contraseñas

  20. El control Login • UI para el logueo de usuarios • Se integra al servicio de membership • Llama automáticamente a ValidateUser • Validación y login ´sin código • También trabaja con sin el membership service • Incorpora RequiredFieldValidators

  21. Usando el control Login <html> <body> <form runat="server"> <asp:Login RunAt="server" /> </form> </body> </html>

  22. Eventos del control Login Nombre Descripción Authenticate Se dispara cuando el usuario hace click en el botón Log In. Su propósito esautenticar al usuario validando sus credenciales. LoggedIn Se dispara luego de un login exitoso LoggingIn Se dispara cuando el usuario hace click en el botón log in. Su propósitoes pre validar las credenciales (por ejemplo: formato) LoginError Se dispara cuando falla el intento de loguearse

  23. Controles Login

  24. Servicio de administración de roles (Role Management Service) • Seguridad basada en roles incluida en el producto. • Acceso declarativo via el Web Site Admin Tool • Acceso programático via la clase roles • La clase roles contiene métodos estáticos para la creación de roles, agregar usuarios a esos roles, etc. • Mapea a los usuarios con los roles en cada request • Reemplza a Application_AuthenticateRequest • Basado en providers para tener flexibilidad

  25. Esquema Controles Login LoginStatus LoginView Otros controleslogin Roles API Roles Role Providers AccessRoleProvider SqlRoleProvider Otros Providers Roles Data Access SQL Server Otros

  26. La clase Roles • Puerta de acceso a la API: Role Management • Brinda métodos estáticos para levar a cabo tareas de administración de roles como • Crear y eliminar roles • Agregar usuarios a los roles • Remover usuarios de los roles.. • … y más • También incluyepropiedades estáticas read-only para adquirir datos acerca del provider

  27. Métodos clave Nombre Descripción AddUserToRole Agrega al usuario al rol CreateRole Crea un nuevo rol DeleteRole Elimina un rol existente GetRolesForUser Obtiene una colección de roles a los que pertenece el usuario GetUsersInRole Obtiene una colección de usuarios pertenecientes a ese rol IsUserInRole Indica si el suario pertenece a ese rol RemoveUserFromRole Remueve al usuario del rol especificado

  28. Creando un nuevo rol if (!Roles.RoleExists ("Desarrolladoress")) { Roles.CreateRole ("Desarrolladores"); }

  29. Agregando un usuario al rol string name = Membership.GetUser ().Username; Roles.AddUserToRole (name, “Desarrolladores");

  30. Habilitando el Role Manager • Role management esta deshabilitado por defecto • Se habilita via el Web.config: <configuration> <system.web> <roleManager enabled="true" /> </system.web> </configuration>

  31. Role Caching • El Role manager caches los datos en cookies • Menos acceso al data store • Mejor Performance • Controlado via los atributos<roleManager> y expuesto programáticamente via la clase Roles • ¿Los roles deberían usar cookies? • ¿Las cokies deberían estar encriptadas? • ¿Cuánto tiempo deberían valer las cookies?

  32. Habilitando Role Caching <configuration> <system.web> <roleManager enabled="true" cacheRolesInCookie="true" /> <!-- Other roleManager attributes (and their defaults) include: cookieName=".ASPXROLES" // Nombre de la cookie cookieTimeout="30" // tiempo de vida cookiePath="/" // Ruta cookieRequireSSL="false" // restriccion SSL? cookieSlidingExpiration="true" // renovarlas? createPersistentCookie="false" // generar persistente? cookieProtection="All" /> // Nivel d eproteccion --> </system.web> </configuration>

  33. Role Management

  34. Preguntas

More Related