在线修改ServU密码注意问题。

        /// <summary>
        
/// 检查用户名密码是否匹配
        
/// </summary>
        
/// <param name="user">用户名</param>
        
/// <param name="pass">用户密码</param>
        
/// <returns>是否匹配</returns>
        public Boolean CheckPasswordByUser(string user,string pass)
        {
            string sqlstring = string.Format("select Password from [User accounts] where [User]='{0}'", user);
            object o=dbServU.GetSingle(sqlstring);
            if (o != null)
            {
                string dbPass = (string)o;
                if (dbPass.Length > 32)
                {
                    char a, b;
                    a = dbPass[0];
                    b = dbPass[1];
                    string password = string.Format("{0}{1}{2}", a, b, pass);
                    password = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");
                    password = string.Format("{0}{1}{2}", a, b, password.ToUpper());
                    if (dbPass == password)
                        return true;
                }
            }
            return false;
        }

        /// <summary>
        
/// 生成新ServU格式密码
        
/// </summary>
        
/// <param name="pass">密码</param>
        
/// <returns>生成的新密码</returns>
        public string GenNewPass(string pass)
        {
            Random rnm = new Random();
            char a = (char)(rnm.Next(97123));
            char b = (char)(rnm.Next(97123));
            string password = string.Format("{0}{1}{2}", a, b, pass);
            password = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");
            pass = string.Format("{0}{1}{2}", a, b, password.ToUpper());
            return pass;
        }

        /// <summary>
        
/// 更改密码
        
/// </summary>
        
/// <param name="user">用户名</param>
        
/// <param name="newPass">新密码</param>
        
/// <returns>是否成功</returns>
        public Boolean ResetPass(string user,string newPass)
        {
            string sqlstring = string.Format("select Password from [User accounts] where [User]='{0}'", user);
            object o=dbServU.GetSingle(sqlstring);
            if (o != null)
            {
                sqlstring = string.Format("update  [User accounts] set password='{0}' where [User]='{1}'", GenNewPass(newPass), user);
                if (dbServU.ExcuteSQL(sqlstring) > 0)
                    return true;
            }
            return false;
        }

密码修改成功后,在注意在ServU中设置Allow user to change password。不然,修改之后密码和新密码都无法正常登录FTP。 

原文地址:https://www.cnblogs.com/leotan/p/2736633.html