/// <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) { HousingMgmtUser user = usersRepository.GetUser(username) as HousingMgmtUser; if(user == null) { throw new ProviderException(); } if(userIsOnline) { user.SetLastActivityDate(); } NHibernateMembershipUser nHibernateMembershipUser = new NHibernateMembershipUser(user); return nHibernateMembershipUser; }
/// <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">The password for the new user.</param> /// <param name="email">The e-mail address for the new user.</param> /// <param name="passwordQuestion">The password question for the new user.</param> /// <param name="passwordAnswer">The password answer for the new user</param> /// <param name="isApproved">Whether or not the new user is approved to be validated.</param> /// <param name="providerUserKey">The unique identifier from the membership data source for the user.</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) { // validacija lozinke ValidatePasswordEventArgs validatePasswordEventArgs = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(validatePasswordEventArgs); // ako username i lozinka ne zadovoljavaju if(validatePasswordEventArgs.Cancel) { status = MembershipCreateStatus.InvalidPassword; return null; } // provjera da li vec postoji ista email adresa ukoliko se trazi jedinstvena email adresa if(RequiresUniqueEmail) { string existedUserName = GetUserNameByEmail(email); if(!string.IsNullOrEmpty(existedUserName)) { status = MembershipCreateStatus.DuplicateEmail; return null; } } // da li konfiguracija podrzava QuestionAndAnswer if(RequiresQuestionAndAnswer) { // ako da trebaju biti zadani pitanje i odgovor if(string.IsNullOrEmpty(passwordQuestion)) { status = MembershipCreateStatus.InvalidQuestion; return null; } if(string.IsNullOrEmpty(passwordAnswer)) { status = MembershipCreateStatus.InvalidAnswer; return null; } } // provjera da li vec posotji korisnik sa istim korisnickim imenom User existingUser = usersRepository.GetUser(username); if(existingUser == null) { HousingMgmtUser user = new HousingMgmtUser(username, password, PasswordCoder) { Email = email, IsApproved = isApproved }; if(RequiresQuestionAndAnswer) { user.ChangePasswordQuestionAndAnswer(password, passwordQuestion, passwordAnswer, PasswordCoder); } usersRepository.SaveOrUpdate(user); status = MembershipCreateStatus.Success; NHibernateMembershipUser nHibernateMembershipUser = new NHibernateMembershipUser(user); return nHibernateMembershipUser; } else { status = MembershipCreateStatus.DuplicateUserName; return null; } }