Vs.net2003+Sql2003+Serv-u实现在线注册FTP功能——程序设计
这里主要说名如何通过程序来为SERV-U创建客户帐户。
前提条件。
1。你的SERV-U能够访问。
2。你要动态创建的帐号。你已经为它设计了一个权限组。
这里我设计了一个用户组USER、它的权限是只能上传,列出目录。&继承。
这个程序只是简单的添加一个用户。然后通过MD5加密算法加密用户密码。并将其保存在SQL服务器中。
代码如下:
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Data.SqlClient;
6
using System.Drawing;
7
using System.Web;
8
using System.Web.SessionState;
9
using System.Web.UI;
10
using System.Web.UI.WebControls;
11
using System.Web.UI.HtmlControls;
12
using System.Security.Cryptography;
13![](/Images/OutliningIndicators/None.gif)
14
namespace webopenftpuser
15
{
16
/// <summary>
17
/// WebForm1 的摘要说明。
18
/// </summary>
19
public class WebForm1 : System.Web.UI.Page
20
{
21
protected System.Web.UI.WebControls.TextBox TextBox1;
22
protected System.Web.UI.WebControls.Button Button1;
23
protected System.Web.UI.WebControls.TextBox TextBox2;
24
protected System.Web.UI.WebControls.Literal Literal2;
25
26
private void Page_Load(object sender, System.EventArgs e)
27
{
28
// 在此处放置用户代码以初始化页面
29
}
30![](/Images/OutliningIndicators/InBlock.gif)
31
Web 窗体设计器生成的代码
52![](/Images/OutliningIndicators/InBlock.gif)
53
private void Button1_Click(object sender, System.EventArgs e)
54
{
55
this.Literal2.Text=GotoMd5code(this.TextBox1.Text).ToUpper();
56
Login();
57
}
58
private string GotoMd5code(string temp)
59
{
60
MD5 md5=new MD5CryptoServiceProvider();
61
byte[] data=System.Text.Encoding.Default.GetBytes(temp);
62
byte[] md5data=md5.ComputeHash(data);
63
string str="";
64
for(int i=0;i<md5data.Length;i++)
65
{
66
str+=md5data[i].ToString("x").PadLeft(2,'0');
67
}
68
return str;
69
}
70
private void Login()
71
{
72
/*
73
* ftpUserName
74
* ftpPassword
75
* ftpPasswordType
76
* dirHome
77
* dirHomeLock
78
* groups
79
*/
80
string[] strcol=new string[6];
81
string[] strval=new string[6];
82![](/Images/OutliningIndicators/InBlock.gif)
83
strcol[0]="ftpUserName";
84
strval[0]=this.TextBox1.Text;
85![](/Images/OutliningIndicators/InBlock.gif)
86
strcol[1]="ftpPassword";
87
strval[1]="pn"+GotoMd5code("pn"+this.TextBox2.Text);
88![](/Images/OutliningIndicators/InBlock.gif)
89
strcol[2]="ftpPasswordType";
90
strval[2]="0";
91![](/Images/OutliningIndicators/InBlock.gif)
92
strcol[3]="dirHome";
93
strval[3]=@"F:\BitComet";
94![](/Images/OutliningIndicators/InBlock.gif)
95
strcol[4]="dirHomeLock";
96
strval[4]=true.ToString();
97![](/Images/OutliningIndicators/InBlock.gif)
98
strcol[5]="groups";
99
strval[5]="User";
100
101
ConnSql.Conndb OpenSql=new ConnSql.Conndb();
102
SqlConnection SqlConn=OpenSql.ConnSql();
103
SqlConn.Open();
104![](/Images/OutliningIndicators/InBlock.gif)
105
string SqlStr="SELECT * FROM ftp_users where id is NULL";
106
int info=OpenSql.AddDate(SqlStr,SqlConn,"ftp_users",strcol,strval);
107
108
}
109
}
110
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
72
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
109
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
110
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
所用到的数据表、
* ftpUserName
* ftpPassword
* ftpPasswordType
* dirHome
* dirHomeLock
* groups