C# 管理Serv-U
时间:2007/7/23 12:31:45
阅读:2835
//Serv-U 管理

using System;
using System.Data;
using System.Data.OleDb;
using System.Web.Security;

namespace Host.AdminManager.Inc

...{

/**//// <summary>
/// ServU 的摘要说明。
/// </summary>
//Access,AlwaysLogin,ChangePass,Disable,Expirationtype,Expiration,Groups,HideHidden,HomeDir,idleTimeOut,LogMesfile,MaxIp,MaxSpeedDown,MaxSpeedUp,MaxUsers,Name,Needsecure,Notes,PassType,Password,Privilege,QuotaCurrent,QuotaEnable,QuotaMax,RatioCredit,RatioDown,RatioType,RatioUP,RelPaths,SessionTimeOut,SkeyValues
public class ServU

...{

四程构造函数#region 四程构造函数

/**//// <summary>
/// 用户名,密码,ftp主目录,空间大小(单位M)
/// </summary>
/// <param name="帐号"></param>
/// <param name="密码"></param>
/// <param name="目录"></param>
public ServU(string 帐号,string 密码,string 目录)

...{
Name = 帐号;
Password = 密码;
HomeDir = 目录;
Access = 目录 + "|RWAMLCDP";
}

/**//// <summary>
/// 用户名,密码,ftp主目录,空间大小(单位M)
/// </summary>
/// <param name="帐号"></param>
/// <param name="密码"></param>
/// <param name="目录"></param>
/// <param name="权限"></param>
public ServU(string 帐号,string 密码,string 目录,string 权限)

...{
Name = 帐号;
Password = 密码;
HomeDir = 目录;
Access = 目录 + "|" + 权限;
}

/**//// <summary>
/// 用户名,密码,ftp主目录,空间大小(单位M)
/// </summary>
/// <param name="帐号"></param>
/// <param name="密码"></param>
/// <param name="目录"></param>
/// <param name="权限"></param>
public ServU(string 帐号,string 密码,string 目录,string 空间)

...{
Name = 帐号;
Password = 密码;
HomeDir = 目录;
QuotaMax = 空间;
Access = 目录 + "|RWAMLCDP";
QuotaEnable = "1";
}

/**//// <summary>
/// 用户名,密码,ftp主目录,空间大小(单位M)
/// </summary>
/// <param name="帐号"></param>
/// <param name="密码"></param>
/// <param name="目录"></param>
/// <param name="空间"></param>
/// <param name="权限"></param>
public ServU(string 帐号,string 密码,string 目录,string 空间,string 权限)

...{
Name = 帐号;
Password = 密码;
HomeDir = 目录;
QuotaMax = 空间;
Access = 目录 + "|" + 权限;
QuotaEnable = "1";
}
#endregion

属性定义#region 属性定义
public string 目录IP访问规则

...{
get

...{
return Access;
}
set

...{
Access = value;
}
}
public string 总是允许登陆

...{
get

...{
return AlwaysLogin;
}
set

...{
AlwaysLogin = value;
}
}
public string 是否允许更改密码

...{
get

...{
return ChangePass;
}
set

...{
ChangePass = value;
}
}
public string 启用禁用帐号

...{
get

...{
return Disable;
}
set

...{
Disable = value;
}
}
public string 帐号到期型类

...{
get

...{
return Expirationtype;
}
set

...{
Expirationtype = value;
}
}
public string 帐号到期时间

...{
get

...{
return Expiration;
}
set

...{
Expiration = value;
}
}
public string 成员组名称

...{
get

...{
return Groups;
}
set

...{
Groups = value;
}
}
public string 是否隐藏具有隐藏属性的文件

...{
get

...{
return HideHidden;
}
set

...{
HideHidden = value;
}
}
public string 空闲超时

...{
get

...{
return idleTimeOut;
}
set

...{
idleTimeOut = value;
}
}
public string 登陆消息文件

...{
get

...{
return LogMesfile;
}
set

...{
LogMesfile = value;
}
}
public string 同一IP的最大用户

...{
get

...{
return MaxIp;
}
set

...{
MaxIp = value;
}
}

/**//// <summary>
/// 连接速度 单位 KB/秒,
/// </summary>
public string 最大下载链接速度

...{
get

...{
return MaxSpeedDown;
}
set

...{
MaxSpeedDown = value;
}
}

/**//// <summary>
/// 连接速度 单位 KB/秒,
/// </summary>
public string 最大上传链接速度

...{
get

...{
return MaxSpeedUp;
}
set

...{
MaxSpeedUp = value;
}
}
public string 最大并发用户

...{
get

...{
return MaxUsers;
}
set

...{
MaxUsers = value;
}
}
public string 帐号名称

...{
get

...{
return Name;
}
set

...{
Name = value;
}
}
public string 进程加密

...{
get

...{
return Needsecure;
}
set

...{
Needsecure = value;
}
}
public string 帐号注解

...{
get

...{
return Notes;
}
set

...{
Notes = value;
}
}
public string 密码类型

...{
get

...{
return PassType;
}
set

...{
PassType = value;
}
}
public string 管理权限

...{
get

...{
return Privilege;
}
set

...{
Privilege = value;
}
}
public string 当前磁盘配额

...{
get

...{
return QuotaCurrent;
}
set

...{
QuotaCurrent = value;
}
}
public string 允许配额

...{
get

...{
return QuotaEnable;
}
set

...{
QuotaEnable = value;
}
}
public string 最大磁盘配置额

...{
get

...{
return QuotaMax;
}
set

...{
QuotaMax = (Convert.ToInt32(value)*1024*1024).ToString();
}
}
public string 比率信任

...{
get

...{
return RatioCredit;
}
set

...{
RatioCredit = value;
}
}
public string 下载率

...{
get

...{
return RatioDown;
}
set

...{
RatioDown = value;
}
}
public string 比率类型

...{
get

...{
return RatioType;
}
set

...{
RatioType = value;
}
}
public string 上载率

...{
get

...{
return RatioUP;
}
set

...{
RatioUP = value;
}
}
public string 锁定于主目录

...{
get

...{
return RelPaths;
}
set

...{
RelPaths = value;
}
}
public string 进程超时

...{
get

...{
return SessionTimeOut;
}
set

...{
SessionTimeOut = value;
}
}
public string S_KEY设置

...{
get

...{
return SkeyValues;
}
set

...{
SkeyValues = value;
}
}

#endregion

初始化#region 初始化
private string Access = ""; //@"e:\web|RWAMLCDP";
private string AlwaysLogin = "0";
private string ChangePass = "1";
private string Disable = "0";
private string Expirationtype = "0";
private string Expiration = "1980-1-1";
private string Groups = "";
private string HideHidden = "0";
private string HomeDir = ""; //主目录
private string idleTimeOut = "600"; //毫秒
private string LogMesfile = @"http://vs.2288.org/host/copyright.aspx";
private string MaxIp = "-1";
private string MaxSpeedDown = "204800"; //下载 204800/1024=200KB/秒
private string MaxSpeedUp = "204800"; //上传
private string MaxUsers = "-1"; //最大用户连接数
private string Name = "";
private string Needsecure = "0";
private string Notes = "";
private string PassType = "0";
private string Password = "";
private string Privilege = "0";
private string QuotaCurrent = "0"; //当前配额 10485760/1024/1024=10M
private string QuotaEnable = "0";
private string QuotaMax = "0"; //最大配额
private string RatioCredit = "0";
private string RatioDown = "1";
private string RatioType = "0";
private string RatioUP = "1";
private string RelPaths = "1";
private string SessionTimeOut = "0";
private string SkeyValues = "";
#endregion

读取/增加/删除#region 读取/增加/删除
public DataSet Read()

...{
string str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["ftp数据库路径"]);
OleDbConnection OleConn = new OleDbConnection(str);
OleDbDataAdapter OleDa = new OleDbDataAdapter("SELECT * FROM useraccounts", OleConn);
DataSet ds = new DataSet();
OleDa.Fill(ds, "读取库");
OleConn.Close();
OleConn.Dispose();
return ds;
}
public Boolean Add()

...{
Password = NewMiMa(Password);
string str1 = "[Access],[AlwaysLogin],[ChangePass],[Disable],[Expirationtype],[Expiration],[Groups],[HideHidden],[HomeDir],[idleTimeOut],[LogMesfile],[MaxIp],[MaxSpeedDown],[MaxSpeedUp],[MaxUsers],[Name],[Needsecure],[Notes],[PassType],[Password],[Privilege],[QuotaCurrent],[QuotaEnable],[QuotaMax],[RatioCredit],[RatioDown],[RatioType],[RatioUP],[RelPaths],[SessionTimeOut],[SkeyValues]";
string str2 = "'"+Access+"',"+AlwaysLogin+","+ChangePass+","+Disable+","+Expirationtype+",#"+Expiration+"#,'"+Groups+"',"+HideHidden+",'"+HomeDir+"',"+idleTimeOut+",'"+LogMesfile+"',"+MaxIp+","+MaxSpeedDown+","+MaxSpeedUp+","+MaxUsers+",'"+Name+"',"+Needsecure+",'"+Notes+"',"+PassType+",'"+Password+"',"+Privilege+","+QuotaCurrent+","+QuotaEnable+","+QuotaMax+","+RatioCredit+","+RatioDown+","+RatioType+","+RatioUP+","+RelPaths+","+SessionTimeOut+",'"+SkeyValues+"'";
string str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["ftp数据库路径"]);
OleDbConnection conn = new OleDbConnection(str);
OleDbCommand cmd = new OleDbCommand("INSERT INTO [useraccounts] ("+str1+") VALUES ("+str2+")", conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
conn.Dispose();
return true;
}
public void update(string name, string password)

...{
password = NewMiMa(password);
string str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["ftp数据库路径"]);
OleDbConnection conn = new OleDbConnection(str);
OleDbCommand cmd = new OleDbCommand("UPDATE [useraccounts] SET [name]='"+name+"', [password]='"+password+"' WHERE name='"+name+"'", conn);
conn.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
conn.Dispose();
}

public Boolean del(string name)

...{
string str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["ftp数据库路径"]);
OleDbConnection conn = new OleDbConnection(str);
OleDbCommand cmd = new OleDbCommand("DELERE FROM [useraccounts] WHERE name='"+name+"'", conn);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
cmd.Connection.Dispose();
return true;
}

#endregion

加密方法,取随时数#region 加密方法,取随时数
private string JiaMi(string UserPassword, string Password) //取原密码前两位来加密,以此合对密码

...{
string Password2 = UserPassword.Substring(0,2);
Password = Password2 + Password; //取密码的左边两位
Password = FormsAuthentication.HashPasswordForStoringInConfigFile(Password,"MD5");
return Password2 + Password;
}
private string NewMiMa(string Password) //新密码加密

...{
string a = MakePassword();
string p = a + Password;
Password = FormsAuthentication.HashPasswordForStoringInConfigFile(p,"MD5");
return a + Password;
}
private string MakePassword()

...{
int pwdlen = 2; //生成随机字符的位数
string pwdchars = "abcdefghijklmnopkrstuvwxyzZBCDEFGHIJKLMNOPKRSTUVWXYZ"; //生成的字符包含那字
string tmpstr = "";
int iRandNum;
Random rnd = new Random();
for(int i=0;i<pwdlen;i++)

...{
iRandNum = rnd.Next(pwdchars.Length);
tmpstr += pwdchars[iRandNum];
}
return tmpstr;
}
#endregion
}
}
