コード例 #1
0
        /// <summary>
        /// to check if the given email matchs the saved email.
        /// email has not been encrypted
        /// username has been checked, exists.
        /// </summary>
        /// <param name="username">existed username</param>
        /// <param name="rawEmail">encrypted email</param>
        /// <returns>if matched, return true; else false</returns>
        public bool MatchEmail(string username, string rawEmail)
        {
            UserInfo existedUserInfo = userInfoService.GetUserInfoByUsername(username);

            string salt  = existedUserInfo.salt;
            string email = existedUserInfo.email;

            string encryptedEmail = new HashManager().HashWithSalt(salt, rawEmail);

            return(encryptedEmail.Equals(email));
        }
コード例 #2
0
        /// <summary>
        /// to login
        /// password has not been encrypted.
        /// username has been checked, safe to use.
        /// </summary>
        /// <param name="username">checked username</param>
        /// <param name="rawPassword">unencrypted password</param>
        /// <returns>
        /// true: login successful
        /// false: login failed
        /// </returns>
        public bool Login(string username, string rawPassword)
        {
            UserInfo userInfo = userInfoService.GetUserInfoByUsername(username);

            if (userInfo == (null))
            {
                return(false);
            }

            string salt = userInfo.salt;
            string encryptedPassword = new HashManager().HashWithSalt(salt, rawPassword);

            if (encryptedPassword.Equals(userInfo.password))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }