| 网站首页 | VB.Net实例分析 | .Net技术文摘 | 下载中心 | VB.Net书籍笔记 | .Net源码 | VBS脚本与组件调用 | Windows2008技术文摘 | 给我们留言 | 
最新公告:

  没有公告

您现在的位置: 乐博网 >> C#应用技巧 >> 技术文摘正文
最新推荐 更多内容
C#管理Serv-U6.4.0.6的方法
C#管理Serv-U6.4.0.6的方法
作者:CarlosAg    来源:msdn     更新时间:2011-3-15

Serv-U到7.0以上界面就太华丽,服务器上没犀利的显卡,难免觉得小卡,对于做虚拟主机的朋友,这个就麻烦了,所以还是怀念6.4.0.6版,把漏洞修补了后就是集性能和安全性为一体的好东西了,如何修补6.4.0.6的程序问题,可以找乐博网 联系qq 80203075  ,帮你重新编译serv-u程序,打造一个安全又稳定的ftp服务软件。

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

  • 上一篇:

  • 下一篇:
  • 【字体: 】【打印此文】【关闭窗口
      相关文章:(只显示最新16条)
    Serv-U密码加密原理并实现( ASP.NET基于C# )
    VB.Net实现FTP编程的学习笔记.04.[乐博网]
    VB.Net实现FTP编程的学习笔记.03.[乐博网]
    VB.Net实现FTP编程的学习笔记.02.[乐博网]
    VB.Net实现FTP编程的学习笔记.01.[乐博网]
    VB.Net实现Ftp上传的方法[乐博网原创]
    VB.Net实现Ftp下载的方法[乐博网原创]
    VB.Net实现登陆Ftp的方法[乐博网原创]
    VB.Net实现FTP下载文件的两种方法

    | 设为首页 | 加入收藏 | 联系站长 | | 友情链接 | 版权申明 |
    乐博网欢迎各种媒体转载我们的原创作品[转载请注明出处];我们鼓励更多VB.Net开发者一起加入研究与探讨;如发现文章访问错误、内容错误或版权疑问、内容有违相关法律(如涉及政治、色情、反动或散布虚假有害信息)等情况,请及时向我们举报,我们将及时纠正!
    联系邮箱:Shiny#vip.qq.com (#替换为@) QQ交流群: 40797788 [闽ICP备05014267号]