/// <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(97, 123));
char b = (char)(rnm.Next(97, 123));
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;
}
/// 检查用户名密码是否匹配
/// </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(97, 123));
char b = (char)(rnm.Next(97, 123));
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。