//
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
}
}