コード例 #1
0
 public static bool IsLoginAllowed(Web_Login_datum row, String password)
 {
     // clear errors
     AuthorizeErrors = new List <AuthorizeErrorsEnum>();
     // check no login data
     if (row == null)
     {
         AuthorizeErrors.Add(AuthorizeErrorsEnum.NoLoginData);
     }
     // cehck is suspended
     if (row != null && row.Suspended == true)
     {
         AuthorizeErrors.Add(AuthorizeErrorsEnum.LoginSuspended);
     }
     // check is email confirmed
     if (row != null && row.Email_Confirmed == false)
     {
         AuthorizeErrors.Add(AuthorizeErrorsEnum.EmailNotConfirmed);
     }
     // check if password is verified
     if (row != null && PasswordVerify.VerifyHashedPassword(row.Password, row.Salt, password) == PasswordVerify.Failed)
     {
         AuthorizeErrors.Add(AuthorizeErrorsEnum.PasswordNotVerified);
     }
     return(!GetAuthorizeErrors().Any()); // true if no errors
 }
コード例 #2
0
        /// <summary>
        /// Returns the CachedUser based on the login data row passed in
        /// </summary>
        /// <param name="row">Login data row</param>
        /// <returns>a new cached user object</returns>
        public static CachedUser GetNew(Web_Login_datum row)
        {
            if (row == null)
            {
                return(null);
            }
            var firstLast = GetName.FirstAndLast(row.Investigator_Name);

            return(new CachedUser
            {
                Username = row.Username,
                InvestigatorName = row.Investigator_Name,
                InvestigatorNumber = row.Investigator.Investigator_Number,
                Email = row.Investigator.Email_Address,
                LastName = firstLast.LastName,
                FirstName = firstLast.FirstName,
                PhoneNumber = row.Investigator.Phone_Number
            });
        }
コード例 #3
0
        public static CachedUser MakeNewUserLogin(String username, String email, String password, EntityContext e = null)
        {
            e.CheckInit();
            if (!Authorize.EmailExists(email, e))
            {
                return(null);
            }
            if (Authorize.EmailIsRegistered(email, e))
            {
                return(null);
            }
            if (Authorize.UsernameIsRegistered(username, e))
            {
                return(null);
            }
            var lowerEmail = email.ToLower();

            try
            {
                var investigator = e.Investigators.FirstOrDefault(p => p.Email_Address.ToLower() == lowerEmail);
                var loginData    = investigator.Web_Login_Data;
                var salt         = Encrypt.GenerateSalt();
                loginData = new Web_Login_datum()
                {
                    Investigator      = investigator,
                    Salt              = salt,
                    Password          = PasswordVerify.HashPassword(password, salt),
                    Temp_Password     = false,
                    Investigator_Name = investigator.Investigator_Name,
                    Username          = username,
                    Suspended         = false,
                    Email_Confirmed   = false,
                    DataSource        = DATA_SOURCE_NAME
                };
                e.Web_Login_Data.Add(loginData);
                e.SaveChanges();
                return(GetCachedUser.GetNew(loginData));
            }
            catch (Exception ex)
            {
                return(null);
            }
        }