/// <summary> /// Updates information about a user in the data source. /// </summary> /// <param name="user">A <see cref="T:System.Web.Security.MembershipUser" /> object that represents the user to update and the updated information for the user. </param> public override void UpdateUser(MembershipUser user) { user.ThrowOnNull("user"); var liveIdUser = LiveIdUser.GetByUserId(user.UserName, ConnectionStringName); if (liveIdUser == null) { throw new ArgumentException("Unable to find the user with ID '{0}'.".FormatWith(user.UserName)); } liveIdUser.LastLogin = user.LastLoginDate; liveIdUser.Approved = user.IsApproved; liveIdUser.Save(); }
/// <summary> /// Verifies that the specified user id exists in the data source and is approved. /// </summary> /// <returns> /// true if the specified username exists and is approved; otherwise, false. /// </returns> /// <param name="username">The id of the user.</param> /// <param name="password">NOT SUPPORTED.</param> public override bool ValidateUser(string username, string password) { username.ThrowOnNullOrWhitespace("username"); var user = LiveIdUser.GetByUserId(username, ConnectionStringName); if (user == null || !user.Approved) { return(false); } user.LastLogin = DateTime.UtcNow; user.Save(); return(true); }
/// <summary> /// Adds a new membership user to the data source. /// </summary> /// <returns> /// A <see cref="T:System.Web.Security.MembershipUser" /> object populated with the information for the newly created user. /// </returns> /// <param name="username">The user name for the new user.</param> /// <param name="password">NOT SUPPORTED.</param> /// <param name="email">NOT SUPPORTED.</param> /// <param name="passwordQuestion">NOT SUPPORTED.</param> /// <param name="passwordAnswer">NOT SUPPORTED.</param> /// <param name="isApproved">NOT SUPPORTED.</param> /// <param name="providerUserKey">NOT SUPPORTED.</param> /// <param name="status">A <see cref="T:System.Web.Security.MembershipCreateStatus" /> enumeration value indicating whether the user was created successfully.</param> public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { if (string.IsNullOrEmpty(username)) { status = MembershipCreateStatus.InvalidUserName; return(null); } var user = new LiveIdUser(ConnectionStringName, username) { Approved = isApproved }; user.Save(); status = MembershipCreateStatus.Success; return(new MembershipUser(Name, username, username, string.Empty, string.Empty, string.Empty, isApproved, false, user.CreatedAt.Value, user.LastLogin, user.LastLogin, DateTime.MinValue, DateTime.MinValue)); }
/// <summary> /// Gets information from the data source for a user. Provides an option to update the last-activity date/time stamp for the user. /// </summary> /// <returns> /// A <see cref="T:System.Web.Security.MembershipUser" /> object populated with the specified user's information from the data source. /// </returns> /// <param name="username">The name of the user to get information for. </param> /// <param name="userIsOnline">true to update the last-activity date/time stamp for the user; false to return user information without updating the last-activity date/time stamp for the user. </param> public override MembershipUser GetUser(string username, bool userIsOnline) { if (string.IsNullOrEmpty(username)) { return(null); } var user = LiveIdUser.GetByUserId(username, ConnectionStringName); if (user == null) { return(null); } if (userIsOnline) { user.LastLogin = DateTime.UtcNow; user.Save(); } return(new MembershipUser(Name, user.UserId, user.UserId, string.Empty, string.Empty, string.Empty, user.Approved, false, user.CreatedAt.Value, user.LastLogin, user.LastLogin, DateTime.MinValue, DateTime.MinValue)); }
/// <summary> /// Removes a user from the membership data source. /// </summary> /// <returns> /// true if the user was successfully deleted; otherwise, false. /// </returns> /// <param name="username">The name of the user to delete.</param> /// <param name="deleteAllRelatedData">true to delete data related to the user from the database; false to leave data related to the user in the database.</param> public override bool DeleteUser(string username, bool deleteAllRelatedData) { LiveIdUser.Delete(username, ConnectionStringName); return(LiveIdUser.GetByUserId(username, ConnectionStringName) == null); }