/// <summary> ///Agrega un nuevo usuario al origen de datos. /// </summary> /// <param name="username">Nick del nuevo usuario.</param> /// <param name="password">Contraseña del nuevo usuario.</param> /// <param name="email">Email del usuario nuevo.</param> /// <param name="passwordQuestion">Pregunta de contraseña del nuevo usuario.</param> /// <param name="passwordAnswer">Respuesta de la pregunta del nuevo usuario</param> /// <param name="isApproved">Si el nuevo usuario está o no aprobado para ser valido</param> /// <param name="providerUserKey">El identificador único del usuario.</param> /// <param name="status">A <see cref="T:System.Web.Security.MembershipCreateStatus" /> valor de enumeración que indica si el usuario se creó correctamente.</param> /// <returns> /// A <see cref="T:System.Web.Security.MembershipUser" /> objeto con la información para el usuario recién creado. /// </returns> public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { FonadeUser u = (FonadeUser)GetUser(username, false); if (u == null) { try { db.CrearContacto(username, password, email); status = MembershipCreateStatus.Success; } catch (Exception) { status = MembershipCreateStatus.UserRejected; } return(GetUser(username, true)); } else { status = MembershipCreateStatus.DuplicateUserName; } return(null); }
/// <summary> /// Obtiene información del origen de datos para un usuario. Proporciona una opción para actualizar la fecha / hora de última actividad para el usuario. /// </summary> /// <param name="username">El nombre del usuario para obtener información .</param> /// <param name="userIsOnline">true para actualizar la fecha / hora de última actividad para el usuario; false para devolver la información del usuario sin actualizar la fecha / hora de última actividad para el usuario.</param> /// <returns> /// A <see cref="T:System.Web.Security.MembershipUser" /> objeto con la información del usuario especificado del origen de datos. /// </returns> public override MembershipUser GetUser(string username, bool userIsOnline) { ObjectCache cache = MemoryCache.Default; FonadeUser usuario = (FonadeUser)cache[string.Format("FonadeUser-{0}", username)]; if (usuario == null || !userIsOnline) { CacheItemPolicy policy = new CacheItemPolicy(); policy.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(5.0); UsuarioFonade contacto = db.GetContacto(username); if (contacto == null) { return(null); } usuario = new FonadeUser("FonadeMembershipProvider", contacto.Email, null, contacto.Email, null, "", true, false, contacto.FechaCreacion, DateTime.Now, DateTime.Now, contacto.FechaCambioClave, DateTime.Now, contacto.Nombres, contacto.Apellidos, contacto.CodGrupo, contacto.IdContacto, contacto.CodInstitucion, contacto.Identificacion, contacto.Clave, contacto.AceptoTerminosYCondiciones, contacto.CodOperador, null ); cache.Set(string.Format("FonadeUser-{0}", username), usuario, policy); } return(usuario); }