Asp.net用户管理API的应用(上)

简介:
Asp.net 官方标准控件实现用户的管理,虽然简单,但控件封装性很强,开发人员不能明白做了什么样的调用,还用别一方面,标准控件的使用,很大程度上限制了程序的可变性。如果自开发一整套用户管理系统,可行,但又失去了标准用户控件的作用,于是用API来管理用户,成为一个很好的先择,下面我列出主要(不 全部)的用户管理API实例:
1、 注册用户
用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
      //Aspx 代码
1     <asp:Label ID="Label1" runat="server"  Text="用户名:"></asp:Label>             
2     <asp:TextBox ID=" name" runat="server" Width="196px"></asp:TextBox>        
3     <asp:Label ID="Label2" runat="server"  Text="密码:"></asp:Label>    
4     <asp:TextBox ID="password" runat="server" Width="197px"></asp:TextBox>     
5     <asp:Label ID="Label3" runat="server"  Text="确认密码:"></asp:Label> 
6     <asp:TextBox ID="OtherPass" runat="server" Width="196px"></asp:TextBox>            
7     <asp:Label ID="Label4" runat="server"  Text="电子邮件:"></asp:Label>     
8     <asp:TextBox ID="email" runat="server" Width="193px"></asp:TextBox>    
9     <asp:Label ID="Label5" runat="server"  Text="安全提示问题:"></asp:Label>                 
10     <asp:TextBox ID="question" runat="server" Width="189px"></asp:TextBox>    
11     <asp:Label ID="Label6" runat="server"  Text="安全答案:"></asp:Label>     
12     <asp:TextBox ID="answer" runat="server" Width="187px"></asp:TextBox>             
13     <asp:Button ID="Button1" runat="server"  Text="注册" Width="69px" /> 
14 
15
 
2、 用户登录
用户登录用Membershi.ValidateUser来验证用户名和密码。如果通过验证,调用FormsAuthentication.RedirectFromLoginPage导向目标页面(这里以及后面的一些设置都是配合Forms验证展开,都预先在web.config中配置好Forms的验证策略)。
//cs 代码,在登录按钮的单击事件注册的方法中
1if (Membership.ValidateUser(UserName. Text,Password. Text)) 
2                { 
3                        FormsAuthentication.RedirectFromLoginPage(UserName. Text, false);    
4                } 
5                 else 
6                { 
7                        Response.Write("登录失败!"); 
8                } 

10
 
  //Aspx 代码
1<asp:Label ID="Label1" runat="server"  Text="用户名:"></asp:Label> 
2 <asp:TextBox ID="UserNmae" runat="server"></asp:TextBox> 
3 <asp:Label ID="Label2" runat="server"  Text="密码:"></asp:Label> 
4 <asp:TextBox ID="Password" runat="server"></asp:TextBox> 
5 <asp:Button ID="Login_But" runat="server"  Text="登录"    
6     Width="69px" /> 
7 <asp:HyperLink ID="FindPass_HL" runat="server" NavigateUrl="~/FindPassword.aspx">忘记密码</asp:HyperLink> 
8<asp:HyperLink ID="Reg_HL" runat="server" NavigateUrl="~/register.aspx">注册</asp:HyperLink> 
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( fromto); 
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 代码
1<asp:Wizard ID="Wizard1" runat="server" ActiveStepIndex="2"    
2                DisplaySideBar="False" Height="103px"    
3                onfinishbuttonclick="Wizard1_FinishButtonClick"    
4                onnextbutt Width="168px"> 
5                <WizardSteps> 
6                        <asp:WizardStep runat="server" title="用户名"> 
7                                请输入用户名:<br /> 
8                                <asp:TextBox ID=" Quest_TB" runat="server" Width="141px"></asp:TextBox> 
9                        </asp:WizardStep> 
10                        <asp:WizardStep runat="server" title="问题"> 
11                                <asp:Label ID="Label1" runat="server"  Text="问题是:"></asp:Label> 
12                                <br /> 
13                                <asp:Label ID="Label2" runat="server"  Text="问题:"></asp:Label> 
14                                <br /> 
15                                <asp:TextBox ID="Answer_TB" runat="server" Width="161px"></asp:TextBox> 
16                                <br /> 
17                        </asp:WizardStep> 
18                        <asp:WizardStep runat="server" Title="完成"> 
19                                <asp:Label ID="Label3" runat="server"  Text="修改密码完成!"></asp:Label> 
20                        </asp:WizardStep> 
21                </WizardSteps> 
22</asp:Wizard>        
23//web.config中的配置 
24位于configuration标签中 
25<system.net> 
26            <mailSettings> 
27                    <smtp  from="[email]axzxs2001@163.com[/email]"> 
28                            <network host="smtp.163.com" password="*********" userName="axzxs2001" /> 
29                    </smtp> 
30            </mailSettings> 
31    </system.net> 
32
 
还有一此用户管理的API,在下一篇文章中叙述。













本文转自桂素伟51CTO博客,原文链接: http://blog.51cto.com/axzxs/149978 ,如需转载请自行联系原作者


相关文章
|
13天前
|
自然语言处理 Java API
Java 8的Stream API和Optional类:概念与实战应用
【5月更文挑战第17天】Java 8引入了许多重要的新特性,其中Stream API和Optional类是最引人注目的两个。这些特性不仅简化了集合操作,还提供了更好的方式来处理可能为空的情况,从而提高了代码的健壮性和可读性。
42 7
|
1天前
|
开发框架 .NET API
在Windows Server 2008 R2上运行.Net 8应用
在Windows Server 2008 R2上成功运行.Net 8程序,需安装三个补丁:Windows Server 2008 R2 SP1 (KB976932)是基础更新;VC_redist.x64提供MSVC库支持;KB3063858解决.NET运行时加载`kernel.dll`的路径问题。KB3063858可能需要KB2533623。详细信息和下载链接在文中给出。
|
5天前
|
安全 算法 Java
Java Stream API:原理、应用与深入解析
Java Stream API:原理、应用与深入解析
|
9天前
|
监控 数据挖掘 API
数据驱动选品:阿里巴巴商品详情API在电商选品中的应用
阿里巴巴开放平台提供了商品详情数据接口(item_get),用于获取商品标题、价格、品牌等信息。开发者需注册账号、构造请求、发送请求并处理响应。接口包括商品搜索、销售数量查询、历史价格、评论获取等功能。适用于选品、数据分析和价格监控。使用时注意遵守规则,保护API密钥,控制调用频率,并处理异常情况。1688平台有限制调用频率的规定,开发者应确保安全性和稳定性。通过[c0b.cc/R4rbK2]获取API测试账号和SDK。
37 3
|
10天前
|
缓存 API 数据库
构建高效Python Web应用:Flask框架与RESTful API设计原则
【5月更文挑战第20天】 在现代Web开发中,构建一个轻量级且高效的后端服务至关重要。本文将深入探讨如何使用Python的Flask框架结合RESTful API设计原则来创建可扩展和易于维护的Web应用程序。我们将通过分析Flask的核心特性,以及如何利用它来实现资源的合理划分、接口的版本控制和请求处理优化等,来指导读者打造高性能的API服务。文中不仅提供了理论指导,还包括了实践案例,旨在帮助开发者提升开发效率,并增强应用的稳定性和用户体验。
|
10天前
|
Java 程序员 API
Java 8 Lambda 表达式和Stream API:概念、优势和实战应用
【5月更文挑战第20天】在Java 8中,Lambda 表达式和Stream API是两个非常强大的特性,它们显著改变了Java程序员处理数据和编写代码的方式。本篇技术文章将深入探讨这些特性的概念、优点,并提供实战示例,帮助理解如何有效地利用这些工具来编写更简洁、更高效的代码。
29 6
|
15天前
|
监控 供应链 数据挖掘
抖音电商新篇章:douyin.item_get API接口的深度应用
douyin.item_get接口最基本的应用就是获取商品的详细信息。商家可以通过输入商品的ID或链接,获取商品的标题、价格、图片、描述、规格等关键信息。这些信息对于商家来说至关重要,可以帮助他们了解商品的销售情况、竞争态势以及市场需求。
|
15天前
|
供应链 搜索推荐 API
API在电子商务中的应用与优势:深入解析
API是电子商务成功的关键,它们不仅促进了技术创新,还提高了用户体验和运营效率。随着技术的不断进步,API将继续在电子商务领域发挥更加重要的作用。电子商务平台通过利用API,可以更加灵活地适应市场变化,提供更加丰富和个性化的购物体验,最终实现业务的增长和扩展。
|
15天前
|
JSON API 数据格式
淘宝商品评论数据获取:从API调用到应用实践
在电商的世界里,用户评论是洞察商品质量的一扇窗。淘宝,作为中国最大的在线购物平台,其海量的商品评论数据尤为宝贵。本文将带您走进淘宝商品评论数据的获取之旅,从API调用的基础知识到实际应用的代码示例,一探究竟。
|
15天前
|
C# Windows
一款.NET开源、简洁易用的Windows桌面小说阅读应用
一款.NET开源、简洁易用的Windows桌面小说阅读应用