예제 #1
0
        public LoginResponse Login(string userName, string passHash)
        {
            EventHandler  eventToFire = LoginFailed;
            LoginResponse result      = GetFailure <LoginResponse>(new Exception("User name and password combination was invalid"));

            try
            {
                bool passwordIsValid = Authenticator.IsPasswordValid(userName, passHash);
                if (passwordIsValid)
                {
                    eventToFire = LoginSucceeded;
                    result      = GetSuccess <LoginResponse>(passwordIsValid);
                    User user = null;
                    if (userName.Contains("@"))
                    {
                        user = User.GetByEmail(userName, Database);
                    }
                    else
                    {
                        user = User.GetByUserName(userName, Database);
                    }
                    DaoUserResolver.SetUser(HttpContext, user, true, Database);
                    user.AddLoginRecord(Database);
                }
            }
            catch (Exception ex)
            {
                eventToFire = LoginFailed;
                result      = GetFailure <LoginResponse>(ex);
            }

            FireEvent(eventToFire, EventArgs.Empty);
            return(result);
        }
예제 #2
0
        public object Clone()
        {
            DaoUserResolver clone = new DaoUserResolver();

            clone.CopyProperties(this);
            return(clone);
        }
예제 #3
0
        public LoginResponse Login(string userName, string passHash)
        {
            string        failureMessage = "User name and password combination was invalid";
            EventHandler  eventToFire    = LoginSucceeded;
            LoginResponse result         = GetFailure <LoginResponse>(new Exception("Unknown exception occurred"));

            try
            {
                User user = null;
                if (userName.Contains("@"))
                {
                    user = User.GetByEmail(userName, Database);
                }
                else
                {
                    user = User.GetByUserName(userName, Database);
                }

                if (user != null)
                {
                    bool passwordIsValid = Password.Validate(user, passHash, Database);

                    result = GetSuccess <LoginResponse>(passwordIsValid);
                    if (!passwordIsValid)
                    {
                        result.Message = failureMessage;
                        result.Success = false;
                        eventToFire    = LoginFailed;
                    }
                    else
                    {
                        DaoUserResolver.SetUser(HttpContext, user, true, Database);
                        user.AddLoginRecord(Database);
                    }
                }
                else
                {
                    eventToFire = LoginFailed;
                    result      = GetFailure <LoginResponse>(new Exception(failureMessage));
                }
            }
            catch (Exception ex)
            {
                eventToFire = LoginFailed;
                result      = GetFailure <LoginResponse>(ex);
            }

            FireEvent(eventToFire, EventArgs.Empty);
            return(result);
        }