コード例 #1
0
        /// <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;
        }
コード例 #2
0
        /// <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;
            }
        }