예제 #1
0
파일: UserRole.cs 프로젝트: jseee/Perevorot
 public void AddUser(User user)
 {
     if(_users.Contains(user))
         throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture,
                                                                          "User {0} AlreadyInRole {1}",
                                                                          user.UserName,RoleName));
     _users.Add(user);
 }
예제 #2
0
 public void Save(User user)
 {
     Session.Users.Attach(user);
     Session.SaveChanges();
 }
예제 #3
0
파일: UserRole.cs 프로젝트: jseee/Perevorot
 public void RemoveUser(User user)
 {
     _users.Remove(user);
 }
예제 #4
0
        //
        // MembershipProvider.CreateUser
        //
        public override MembershipUser CreateUser(string username,
            string password,
            string email,
            string passwordQuestion,
            string passwordAnswer,
            bool isApproved,
            object providerUserKey,
            out MembershipCreateStatus status)
        {
            var args = new ValidatePasswordEventArgs(username, password, true);

            OnValidatingPassword(args);

            if (args.Cancel)
            {
                status = MembershipCreateStatus.InvalidPassword;
                return null;
            }

            if (RequiresUniqueEmail && GetUserNameByEmail(email) != "")
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return null;
            }

            var u = GetUser(username, false);

            if (u == null)
            {
                var createDate = DateTime.Now;
                Application application;

                using (LoginRepository.CreateUnitOfWork())
                {
                    application = LoginRepository.GetAll<Application>().FirstOrDefault(x => x.ApplicationName.Equals(pApplicationName));
                }

                var user = new User(username)
                    {
                        LoweredUserName = username.ToLower(),
                        LastActivityDate = createDate,
                        Application = application
                    };

                var member = new Member
                    {
                        Password = EncodePassword(password),
                        Email = email,
                        PasswordQuestion = passwordQuestion,
                        PasswordAnswer = EncodePassword(passwordAnswer),
                        PasswordSalt = CreateSalt(),
                        IsApproved = isApproved,
                        Comment = string.Empty,
                        CreateDate = createDate,
                        LastPasswordChangedDate = createDate,
                        IsLockedOut = false,
                        FailedPasswordAttemptCount = 0,
                        FailedPasswordAttemptWindowStart = createDate,
                        FailedPasswordAnswerAttemptCount = 0,
                        FailedPasswordAnswerAttemptWindowStart = createDate,
                        Application = application,
                        LastLockoutDate = SqlDateTime.MinValue.Value,
                        LastLoginDate = SqlDateTime.MinValue.Value,
                        User = user
                    };

                try
                {
                    using (var uow = LoginRepository.CreateUnitOfWork())
                    {
                        LoginRepository.SaveOrUpdate(member);
                        uow.Commit();
                        status = MembershipCreateStatus.Success;
                    }
                }
                catch (Exception e)
                {
                    if (WriteExceptionsToEventLog)
                    {
                        WriteToEventLog(e, "CreateUser");
                    }
                    status = MembershipCreateStatus.ProviderError;
                }
                return GetUser(username, false);
            }
            status = MembershipCreateStatus.DuplicateUserName;
            return null;
        }