Asp.net
官方标准控件实现用户的管理,虽然简单,但控件封装性很强,开发人员不能明白做了什么样的调用,还用别一方面,标准控件的使用,很大程度上限制了程序的可变性。如果自开发一整套用户管理系统,可行,但又失去了标准用户控件的作用,于是用API来管理用户,成为一个很好的先择,下面我列出主要(不 全部)的用户管理API实例:
1、
注册用户
用Membership.CreateUser来创建设新用户,注意密友要包含一个符号,Membership位于System.Web.Security命名空间内。
用Membership.CreateUser来创建设新用户,注意密友要包含一个符号,Membership位于System.Web.Security命名空间内。
//cs
1try
2 {
3 MembershipCreateStatus MCS;
4 Membership.CreateUser( name. Text, password. Text,email . Text ,question . Text,answer . Text ,true , out MCS );
5 Response.Write(MCS.ToString ());
6 }
7 catch(Exception s)
8 {
9 //异常处理代码
10 }
11
2 {
3 MembershipCreateStatus MCS;
4 Membership.CreateUser( name. Text, password. Text,email . Text ,question . Text,answer . Text ,true , out MCS );
5 Response.Write(MCS.ToString ());
6 }
7 catch(Exception s)
8 {
9 //异常处理代码
10 }
11
//Aspx
代码
1 Text="用户名:">
2name" runat="server" Width="196px">
3Text="密码:">
4
5Text="确认密码:">
6
7Text="电子邮件:">
8
9Text="安全提示问题:">
10
11Text="安全答案:">
12
13Text="注册" Width="69px" />
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2、
用户登录
用户登录用Membershi.ValidateUser来验证用户名和密码。如果通过验证,调用FormsAuthentication.RedirectFromLoginPage导向目标页面(这里以及后面的一些设置都是配合Forms验证展开,都预先在web.config中配置好Forms的验证策略)。
//cs 代码,在登录按钮的单击事件注册的方法中
//cs 代码,在登录按钮的单击事件注册的方法中
1if (Membership.ValidateUser(UserName.
Text,Password.
Text))
2 {
3 FormsAuthentication.RedirectFromLoginPage(UserName. Text, false);
4 }
5 else
6 {
7 Response.Write("登录失败!");
8 }
9
10
2 {
3 FormsAuthentication.RedirectFromLoginPage(UserName. Text, false);
4 }
5 else
6 {
7 Response.Write("登录失败!");
8 }
9
10
//Aspx
代码
1Text="用户名:">
2
3Text="密码:">
4
5Text="登录"
6 Width="69px" />
7忘记密码
8注册
9
10
11
2
3
4
5
6 Width="69px" />
7
8
9
10
11
3、
找回密码
//cs
Cs
中的邮件发方法,关于一些邮件的配置是在web.confing中存放,方法中有相关的获取方法
1using System;
2using System.Collections;
3using System.Configuration;
4using System.Data;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.HtmlControls;
9using System.Web.UI.WebControls;
10using System.Web.UI.WebControls.WebParts;
11using System.Web.Configuration;
12using System.Net.Configuration;
13using System.Net.Mail ;
14public partial class FindPassword : System.Web.UI.Page
15{
16 protected void Page_Load(object sender, EventArgs e)
17 {
18 if (!IsPostBack)
19 {
20 Wizard1.ActiveStepIndex = 0;
21 }
22 }
23 protected void Wizard1_NextButtonClick(object sender, WizardNavigationEventArgs e)
24 {
25 try
26 {
27 Label1. Text = "问题是:" + Membership.GetUser(Quest_TB. Text).PasswordQuestion;
28 }
29 catch (Exception ee)
30 {
31 Response.Write("异常,详细错误:"+ee.Message);
32 }
33 }
34 protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
35 {
36 try
37 {
38 Configuration c = WebConfigurationManager.OpenWebConfiguration(@"~\web.config"); ;
39 NetSectionGroup ns = NetSectionGroup.GetSectionGroup(c);
40 string forms = ns.MailSettings.Smtp. From;
41 string hosts = ns.MailSettings.Smtp.Network.Host;
42 int ports = ns.MailSettings.Smtp.Network.Port;
43 string usernames = ns.MailSettings.Smtp.Network.UserName;
44 string passwords = ns.MailSettings.Smtp.Network.Password;
45 MailAddress from = new MailAddress(forms);
46 MailAddress to = new MailAddress(Membership.GetUser(TextBox1. Text).Email);
47 MailMessage message = new MailMessage( from, to);
48 message.Subject = "密码";
49 string nr = "您好:你的密码为:" + Membership.GetUser(Quest_TB. Text).ResetPassword(Answer_TB. Text);
50 message.Body = nr;
51 SmtpClient client = new SmtpClient(hosts, ports);
52 client.Send(message);
53 }
54 catch (Exception ee)
55 {
56 Response.Write("发送邮箱密码错误!详细信息:"+ee.Message);
57 }
58 }
59}
60
2using System.Collections;
3using System.Configuration;
4using System.Data;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.HtmlControls;
9using System.Web.UI.WebControls;
10using System.Web.UI.WebControls.WebParts;
11using System.Web.Configuration;
12using System.Net.Configuration;
13using System.Net.Mail ;
14public partial class FindPassword : System.Web.UI.Page
15{
16 protected void Page_Load(object sender, EventArgs e)
17 {
18 if (!IsPostBack)
19 {
20 Wizard1.ActiveStepIndex = 0;
21 }
22 }
23 protected void Wizard1_NextButtonClick(object sender, WizardNavigationEventArgs e)
24 {
25 try
26 {
27 Label1. Text = "问题是:" + Membership.GetUser(Quest_TB. Text).PasswordQuestion;
28 }
29 catch (Exception ee)
30 {
31 Response.Write("异常,详细错误:"+ee.Message);
32 }
33 }
34 protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
35 {
36 try
37 {
38 Configuration c = WebConfigurationManager.OpenWebConfiguration(@"~\web.config"); ;
39 NetSectionGroup ns = NetSectionGroup.GetSectionGroup(c);
40 string forms = ns.MailSettings.Smtp. From;
41 string hosts = ns.MailSettings.Smtp.Network.Host;
42 int ports = ns.MailSettings.Smtp.Network.Port;
43 string usernames = ns.MailSettings.Smtp.Network.UserName;
44 string passwords = ns.MailSettings.Smtp.Network.Password;
45 MailAddress from = new MailAddress(forms);
46 MailAddress to = new MailAddress(Membership.GetUser(TextBox1. Text).Email);
47 MailMessage message = new MailMessage( from, to);
48 message.Subject = "密码";
49 string nr = "您好:你的密码为:" + Membership.GetUser(Quest_TB. Text).ResetPassword(Answer_TB. Text);
50 message.Body = nr;
51 SmtpClient client = new SmtpClient(hosts, ports);
52 client.Send(message);
53 }
54 catch (Exception ee)
55 {
56 Response.Write("发送邮箱密码错误!详细信息:"+ee.Message);
57 }
58 }
59}
60
//Aspx
代码
12 DisplaySideBar="False" Height="103px"
3 onfinishbuttonclick="Wizard1_FinishButtonClick"
4 onnextbutt Width="168px">
5
6
7 请输入用户名:
8
9
10
11Text="问题是:">
12
13Text="问题:">
14
15
16
17
18
19Text="修改密码完成!">
20
21
22
23//web.config中的配置
24位于configuration标签中
25
26
27from="[email][email protected][/email]">
28
29
30
31
32
3 onfinishbuttonclick="Wizard1_FinishButtonClick"
4 onnextbutt Width="168px">
5
6
7 请输入用户名:
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23//web.config中的配置
24位于configuration标签中
25
26
27
28
29
30
31
32
还有一此用户管理的API,在下一篇文章中叙述。