在petshop3.0中有一个MyAccount.aspx页面,此页面对用户不同的操作做出不同的提示,比如新创建用户,用户更新,用户登录.其中有三个参数
private
const
string
ACTION_CREATE
=
"
create
"
;
private
const
string
ACTION_UPDATE
=
"
update
"
;
private
const
string
ACTION_SIGN_IN
=
"
signIn
"
;
private
const
string
TITLE_CREATE
=
"
Create Account
"
;
private
const
string
TITLE_UPDATE
=
"
Edit Account
"
;
private
const
string
TITLE_SIGN_IN
=
"
Sign In
"
;
private
const
string
MSG_CREATE
=
"
Your account was successfully created.
"
;
private
const
string
MSG_UPDATE
=
"
Your account was successfully updated.
"
;
private
const
string
MSG_SIGN_IN
=
"
Welcome to the .NET Pet Shop Demo.
"
;
通过检测Request["action"]来传递,然后做出判断,显示不同提示信息
override
protected
void
OnLoad(EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/3a1c2d778e58280a03608ca7c2e471fc.gif)
{
string pageAction = WebComponents.CleanString.InputText(Request["action"], 20);
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
switch(pageAction)
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
{
case ACTION_CREATE:
lblMessage.Text = MSG_CREATE;
break;
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
case ACTION_UPDATE:
lblMessage.Text = MSG_UPDATE;
break;
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
case ACTION_SIGN_IN:
lblMessage.Text = MSG_SIGN_IN;
break;
}
}
在 WEB项目中的ProcessFlow文件夹中有个AccountController.cs帐户管理类.它引用了已经封装好了的Account类中的方法.然后
这个类根据用户不同的操作进行导向,并赋予权限
1![](https://i-blog.csdnimg.cn/blog_migrate/3a1c2d778e58280a03608ca7c2e471fc.gif)
/**//// <summary>
2
/// 控制帐户相关操作的流程
3
/// </summary>
4![](https://i-blog.csdnimg.cn/blog_migrate/3a1c2d778e58280a03608ca7c2e471fc.gif)
public class AccountController
{
5
// 导航内容
6![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
7
private const string ACCOUNT_KEY = "ACCOUNT_KEY";
8
private const string URL_DEFAULT = "default.aspx";
9
private const string URL_SIGNIN = "SignIn.aspx";
10
private const string URL_ACCOUNTCREATE = "MyAccount.aspx?action=create";
11
private const string URL_ACCOUNTSIGNIN = "MyAccount.aspx?action=signIn";
12
private const string URL_ACCOUNTUPDATE = "MyAccount.aspx?action=update";
13
14![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
/**//// <summary>
15
/// 构造函数
16
/// </summary>
17![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
public AccountController()
{
18
}
19![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
20![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
/**//// <summary>
21
/// 验证登陆系统
22
/// 判断是否登录成功
23
/// </summary>
24
/// <param name="userId">User name the customer is authenticating with</param>
25
/// <param name="password">Password the customer is using</param>
26
/// <returns>true if the login is successful</returns>
27![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
public bool ProcessLogin(string userId, string password)
{
28![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
29
// 使用帐户业务逻辑层来登录
30
Account account = new Account();
31
AccountInfo myAccountInfo = account.SignIn(userId, password);
32![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
33
//登录成功,在Session中存储状态并且跳转
34![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
if (myAccountInfo != null)
{
35
HttpContext.Current.Session[ACCOUNT_KEY] = myAccountInfo;
36
37
// 决定用户跳转到哪儿
38
// 返回到登录成功的提示页面
39![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
if (FormsAuthentication.GetRedirectUrl(userId, false).EndsWith(URL_DEFAULT))
{
40![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
41
FormsAuthentication.SetAuthCookie(userId, false);
42
HttpContext.Current.Response.Redirect(URL_ACCOUNTSIGNIN, true);
43![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
44![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
}else
{
45
// 返回上一个页面
46
FormsAuthentication.SetAuthCookie(userId, false);
47![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
48
HttpContext.Current.Response.Redirect(FormsAuthentication.GetRedirectUrl(userId, false), true);
49
}
50![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
51
return true;
52
53![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
}else
{
54
// 登录失败
55
return false;
56
}
57
}
58![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
59![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
public bool CreateAccount(AccountInfo newAccountInfo)
{
60![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
61![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
try
{
62
// 创建一个新帐户逻辑对象
63
Account account = new Account();
64![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
65
// 调用Insert方法
66
account.Insert(newAccountInfo);
67![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
68
// 在Session中存储帐户信息,在cookie中存储验证信息
69
HttpContext.Current.Session[ACCOUNT_KEY] = newAccountInfo;
70
FormsAuthentication.SetAuthCookie(newAccountInfo.UserId, false);
71
72
//跳转到注册成功页面
73
HttpContext.Current.Response.Redirect(URL_ACCOUNTCREATE, true);
74
75
76![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
}catch
{
77
return false;
78
}
79![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
80
return true;
81
}
82![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
83![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
/**//// <summary>
84
/// 更新帐户信息方法
85
/// </summary>
86
/// <param name="updatedAccountInfo">Updated account information</param>
87![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
public void UpdateAccount(AccountInfo updatedAccountInfo)
{
88![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
89
// 创建帐户逻辑类
90
Account account = new Account();
91
92
// 调用更新方法
93
account.Update(updatedAccountInfo);
94![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
95
//将更改后的信息保存在session中
96
HttpContext.Current.Session[ACCOUNT_KEY] = updatedAccountInfo;
97![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
98
//返回更新成功提示
99
HttpContext.Current.Response.Redirect(URL_ACCOUNTUPDATE, true);
100
101
}
102![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
103![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
/**//// <summary>
104
/// 得到一个登录后的顾客的帐户信息
105
/// 假设信息存储在session里
106
/// 如果没有找到要用的信息,则重新登录
107
/// </summary>
108
/// <returns>The account info for the currently logged in user</returns>
109![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
public AccountInfo GetAccountInfo(bool required)
{
110
AccountInfo myAccount = (AccountInfo)HttpContext.Current.Session[ACCOUNT_KEY];
111![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
112![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
if (myAccount == null)
{
113![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
if(required)
{
114
HttpContext.Current.Response.Redirect(URL_SIGNIN, true);
115
116
}
117
return null;
118![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
}else
{
119
return myAccount;
120
}
121
}
122![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
123![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
/**//// <summary>
124
/// 如果我们知道的话就找到用户的关注类型
125
/// 假设信息存储在session里
126
/// </summary>
127
/// <returns>The customers favourite category</returns>
128![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
public string GetFavouriteCategory()
{
129![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
130
AccountInfo myAccount = (AccountInfo)HttpContext.Current.Session[ACCOUNT_KEY];
131![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
132![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
if (myAccount != null && myAccount.IsShowFavorites)
{
133
return myAccount.Category;
134![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
}else
{
135
return null;
136
}
137
}
138![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
139![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
/**//// <summary>
140
/// 退出系统方法
141
/// 用户退出系统则清空seesion,以及他们的验证将被重置
142
/// </summary>
143![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
public void LogOut()
{
144![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
145
// 清除验证信息
146
FormsAuthentication.SignOut();
147
// 清除session内容
148
HttpContext.Current.Session.Clear();
149
// 取消当前会话
150
HttpContext.Current.Session.Abandon();
151
}
152
}
接着看另外三个页面,登录页面,创建帐户页面,修改帐户信息页面
登录页面很简单,引用了刚才的帐户管理类
ProcessFlow.AccountController accountController
=
new
ProcessFlow.AccountController();
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3a1c2d778e58280a03608ca7c2e471fc.gif)
if
(
!
accountController.ProcessLogin(userId, password))
{
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
// If we fail to login let the user know
valUserId.ErrorMessage = MSG_FAILURE;
valUserId.IsValid = false;
}
创建帐户页面和修改帐户信息页面比较相似,修改帐户信息页面无法修改密码.
当创建帐户页面时需要同时向三张表插入数据,分别是用户基本信息表,用户登录表,用户配置表
修改信息页面只需要修改两张表, 用户基本信息表和用户配置表,因为用户无法更改用户名和密码,所以用户登录表无须改变.
其中注册页面的地址栏和信息配置选项是用用户控件来完成的
当然最后还有注销页面
override
protected
void
OnLoad(EventArgs e)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
// Create an instance of the account controller
ProcessFlow.AccountController accountController = new ProcessFlow.AccountController();
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
// Tell the controller that the user is logging out
accountController.LogOut();
}
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
通过检测Request["action"]来传递,然后做出判断,显示不同提示信息
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3a1c2d778e58280a03608ca7c2e471fc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4968dcdbdfc6cfa5e041e6385303b345.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/de2bbefebbaa11a78e36c375d8376464.gif)
在 WEB项目中的ProcessFlow文件夹中有个AccountController.cs帐户管理类.它引用了已经封装好了的Account类中的方法.然后
这个类根据用户不同的操作进行导向,并赋予权限
![](https://i-blog.csdnimg.cn/blog_migrate/4968dcdbdfc6cfa5e041e6385303b345.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3a1c2d778e58280a03608ca7c2e471fc.gif)
1
![](https://i-blog.csdnimg.cn/blog_migrate/3a1c2d778e58280a03608ca7c2e471fc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4968dcdbdfc6cfa5e041e6385303b345.gif)
2
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
3
![](https://i-blog.csdnimg.cn/blog_migrate/de2bbefebbaa11a78e36c375d8376464.gif)
4
![](https://i-blog.csdnimg.cn/blog_migrate/3a1c2d778e58280a03608ca7c2e471fc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4968dcdbdfc6cfa5e041e6385303b345.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
5
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
6
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
7
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
8
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
9
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
10
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
11
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
12
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
13
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
14
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
15
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
16
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
17
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
18
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
19
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
20
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
21
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
22
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
23
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
24
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
25
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
26
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
27
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
28
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
29
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
30
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
31
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
32
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
33
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
34
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
35
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
36
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
37
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
38
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
39
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
40
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
41
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
42
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
43
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
44
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
45
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
46
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
47
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
48
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
49
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
50
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
51
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
52
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
53
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
54
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
55
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
56
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
57
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
58
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
59
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
60
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
61
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
62
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
63
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
64
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
65
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
66
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
67
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
68
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
69
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
70
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
71
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
72
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
73
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
74
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
75
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
76
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
77
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
78
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
79
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
80
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
81
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
82
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
83
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
84
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
85
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
86
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
87
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
88
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
89
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
90
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
91
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
92
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
93
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
94
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
95
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
96
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
97
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
98
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
99
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
100
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
101
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
102
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
103
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
104
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
105
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
106
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
107
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
108
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
109
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
110
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
111
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
112
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
113
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
114
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
115
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
116
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
117
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
118
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
119
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
120
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
121
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
122
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
123
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
124
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
125
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
126
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
127
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
128
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
129
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
130
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
131
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
132
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
133
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
134
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
135
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
136
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
137
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
138
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
139
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
140
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
141
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
142
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
143
![](https://i-blog.csdnimg.cn/blog_migrate/d956d23f92c7381a20bee108a2099f73.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d47f466770b50db01aa9765767f6b5dd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
144
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
145
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
146
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
147
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
148
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
149
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
150
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
151
![](https://i-blog.csdnimg.cn/blog_migrate/6edbf03e95f55230124c993fcb753174.gif)
152
![](https://i-blog.csdnimg.cn/blog_migrate/de2bbefebbaa11a78e36c375d8376464.gif)
接着看另外三个页面,登录页面,创建帐户页面,修改帐户信息页面
登录页面很简单,引用了刚才的帐户管理类
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3a1c2d778e58280a03608ca7c2e471fc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4968dcdbdfc6cfa5e041e6385303b345.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/de2bbefebbaa11a78e36c375d8376464.gif)
创建帐户页面和修改帐户信息页面比较相似,修改帐户信息页面无法修改密码.
当创建帐户页面时需要同时向三张表插入数据,分别是用户基本信息表,用户登录表,用户配置表
修改信息页面只需要修改两张表, 用户基本信息表和用户配置表,因为用户无法更改用户名和密码,所以用户登录表无须改变.
其中注册页面的地址栏和信息配置选项是用用户控件来完成的
当然最后还有注销页面
![](https://i-blog.csdnimg.cn/blog_migrate/3a1c2d778e58280a03608ca7c2e471fc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4968dcdbdfc6cfa5e041e6385303b345.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3efa1f9bd41368461325541070f19ce1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/de2bbefebbaa11a78e36c375d8376464.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a11078bdc01a5771ce53e056951850ea.gif)