Exemplo n.º 1
0
        /// <summary>
        /// 密码修改
        /// </summary>
        /// <param name="uId">用户标识</param>
        /// <param name="nPwd">加密的新密码</param>
        /// <param name="nFormat">新密码加密方式</param>
        /// <param name="nSalt">新密码盐值</param>
        public void ChangePassword(string uId, String nPwd, EnmPasswordFormat nFormat, String nSalt)
        {
            SqlParameter[] parms = { new SqlParameter("@ID",        SqlDbType.VarChar, 100),
                                     new SqlParameter("@PWD",       SqlDbType.VarChar, 128),
                                     new SqlParameter("@PwdFormat", SqlDbType.Int),
                                     new SqlParameter("@PwdSalt",   SqlDbType.VarChar, 128) };

            using (var conn = new SqlConnection(this._databaseConnectionString)) {
                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }
                var trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
                try {
                    parms[0].Value = SqlTypeConverter.DBNullStringChecker(uId);
                    parms[1].Value = nPwd;
                    parms[2].Value = nFormat;
                    parms[3].Value = nSalt;
                    SqlHelper.ExecuteNonQuery(trans, CommandType.Text, SqlCommands_Rs.Sql_U_User_Repository_ChangePassword, parms);
                    trans.Commit();
                } catch {
                    trans.Rollback();
                    throw;
                }
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Ctor
 /// </summary>
 public UserService(
     IU_UserRepository repository,
     ICacheManager cacheManager)
 {
     this._repository     = repository;
     this._cacheManager   = cacheManager;
     this._passwordFormat = EnmPasswordFormat.Hashed;
 }
Exemplo n.º 3
0
        /// <summary>
        /// 密码加密(采用SHA1加密方式或不加密)
        /// </summary>
        /// <param name="pwd">待加密的密码</param>
        /// <param name="format">加密方式</param>
        /// <param name="salt">加密盐值</param>
        /// <returns>返回已经加密的密码</returns>
        public String EncodePassword(String pwd, EnmPasswordFormat format, String salt)
        {
            if (format == EnmPasswordFormat.Clear) { return pwd; }
            var bytes = Encoding.Unicode.GetBytes(pwd);
            var src = Convert.FromBase64String(salt);
            var dst = new byte[src.Length + bytes.Length];
            Buffer.BlockCopy(src, 0, dst, 0, src.Length);
            Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length);

            var algorithm = HashAlgorithm.Create("SHA1");
            var inArray = algorithm.ComputeHash(dst);
            return Convert.ToBase64String(inArray);
        }
Exemplo n.º 4
0
 public bool CheckPassword(String oPwd, EnmPasswordFormat oFormat, String oSalt, String ePwd)
 {
     return(_repository.EncodePassword(oPwd, oFormat, oSalt).Equals(ePwd));
 }
Exemplo n.º 5
0
 /// <summary>
 /// Check password.
 /// </summary>
 /// <param name="encodePwd">encode password</param>
 /// <param name="originalPwd">original password</param>
 /// <param name="passwordFormat">password format</param>
 /// <param name="salt">salt value</param>
 /// <returns>true/false</returns>
 public Boolean CheckPassword(String encodePwd, String originalPwd, EnmPasswordFormat passwordFormat, String salt)
 {
     return(EncodePassword(originalPwd, passwordFormat, salt).Equals(encodePwd));
 }