コード例 #1
0
        public void RegisterUser_Should_Call_AddProfile_On_ProfileService()
        {
            var newMembership = new InverGrove.Domain.Models.Membership {MembershipId = 4, UserId = 1};
            var newUser = this.GetTestRegister();

            this.userRoleRepository.Setup(u => u.Get(It.IsAny<Expression<Func<UserRole, bool>>>(),
                It.IsAny<Func<IQueryable<UserRole>, IOrderedQueryable<UserRole>>>(), It.IsAny<bool>(),
                It.IsAny<string>())).Returns(new List<UserRole>());
            this.membershipService.Setup(
                m => m.CreateMembershipUser(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(),
                    It.IsAny<string>(), It.IsAny<string>(), false, MembershipPasswordFormat.Hashed)).Returns(newMembership);
            this.userRoleRepository.Setup(u => u.AddUserToRole(newMembership.UserId, newUser.RoleId));

            this.registrationService.RegisterUser(newUser);

            this.profileService.Verify(p => p.AddProfile(It.IsAny<int>(), It.IsAny<int>(), true, true));
        }
コード例 #2
0
        /// <summary>
        /// Creates the specified user id.
        /// </summary>
        /// <param name="password">The password.</param>
        /// <param name="isApproved">if set to <c>true</c> [is approved].</param>
        /// <param name="passwordQuestion">The password question.</param>
        /// <param name="passwordAnswer">The password answer.</param>
        /// <param name="passwordFormat">The password format.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentNullException">password</exception>
        public IMembership Create(string password, bool isApproved,
            string passwordQuestion, string passwordAnswer, MembershipPasswordFormat passwordFormat)
        {
            if (string.IsNullOrEmpty(password))
            {
                throw new ParameterNullException("password");
            }

            if (string.IsNullOrEmpty(passwordQuestion))
            {
                throw new ParameterNullException("passwordQuestion");
            }

            if (string.IsNullOrEmpty(passwordAnswer))
            {
                throw new ParameterNullException("passwordAnswer");
            }

            var inverGrovePasswordFormat = passwordFormat.ToInverGrovePasswordFormat();

            var membership = new Membership
                             {
                                 PasswordSalt = password.GetRandomSalt(),
                                 PasswordFormatId = (int)inverGrovePasswordFormat,
                                 IsApproved = isApproved,
                                 PasswordQuestion = passwordQuestion
                             };

            var strippedSecurityAnswer = passwordAnswer.ToSecurityAnswer();
            var hashedSecurityAnswer = strippedSecurityAnswer.FormatPasscode(inverGrovePasswordFormat, membership.PasswordSalt);

            membership.Password = password.FormatPasscode(inverGrovePasswordFormat, membership.PasswordSalt);
            membership.PasswordAnswer = (inverGrovePasswordFormat == InverGrovePasswordFormat.Hashed) ? hashedSecurityAnswer : strippedSecurityAnswer;
            membership.FailedPasswordAttemptWindowStart = DateTime.MinValue.IsSqlSafeDate();
            membership.FailedPasswordAnswerAttemptWindowStart = DateTime.MinValue.IsSqlSafeDate();

            return membership;
        }