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 ,如需转载请自行联系原作者


相关文章
|
29天前
|
存储 Shell Linux
快速上手基于 BaGet 的脚本自动化构建 .net 应用打包
本文介绍了如何使用脚本自动化构建 `.net` 应用的 `nuget` 包并推送到指定服务仓库。首先概述了 `BaGet`——一个开源、轻量级且高性能的 `NuGet` 服务器,支持多种存储后端及配置选项。接着详细描述了 `BaGet` 的安装、配置及使用方法,并提供了 `PowerShell` 和 `Bash` 脚本实例,用于自动化推送 `.nupkg` 文件。最后总结了 `BaGet` 的优势及其在实际部署中的便捷性。
60 10
|
2月前
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
7天前
|
开发框架 监控 前端开发
在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作
【9月更文挑战第27天】操作筛选器是ASP.NET Core MVC和Web API中的一种过滤器,可在操作方法执行前后运行代码,适用于日志记录、性能监控和验证等场景。通过实现`IActionFilter`接口的`OnActionExecuting`和`OnActionExecuted`方法,可以统一处理日志、验证及异常。创建并注册自定义筛选器类,能提升代码的可维护性和复用性。
|
18天前
|
数据采集 JSON API
.NET 3.5 中 HttpWebRequest 的核心用法及应用
【9月更文挑战第7天】在.NET 3.5环境下,HttpWebRequest 类是处理HTTP请求的一个核心组件,它封装了HTTP协议的细节,使得开发者可以方便地发送HTTP请求并接收响应。本文将详细介绍HttpWebRequest的核心用法及其实战应用。
53 6
|
2月前
|
Linux iOS开发 开发者
跨平台开发不再难:.NET Core如何让你的应用在Windows、Linux、macOS上自如游走?
【8月更文挑战第28天】本文提供了一份详尽的.NET跨平台开发指南,涵盖.NET Core简介、环境配置、项目结构、代码编写、依赖管理、构建与测试、部署及容器化等多个方面,帮助开发者掌握关键技术与最佳实践,充分利用.NET Core实现高效、便捷的跨平台应用开发与部署。
67 3
|
2月前
|
缓存 Java API
【揭秘】.NET高手不愿透露的秘密:如何让应用瞬间提速?
【8月更文挑战第28天】本文通过对比的方式,介绍了针对 .NET 应用性能瓶颈的优化方法。以一个存在响应延迟和并发处理不足的 Web API 项目为例,从性能分析入手,探讨了使用结构体减少内存分配、异步编程提高吞吐量、EF Core 惰性加载减少数据库访问以及垃圾回收机制优化等多个方面,帮助开发者全面提升 .NET 应用的性能和稳定性。通过具体示例,展示了如何在不同场景下选择最佳实践,以实现更高效的应用体验。
32 3
|
2月前
|
前端开发 JavaScript 开发工具
跨域联姻:React.NET——.NET应用与React的完美融合,解锁前后端高效协作新姿势。
【8月更文挑战第28天】探索React.NET,这是将热门前端框架React与强大的.NET后端无缝集成的创新方案。React以其组件化和虚拟DOM技术著称,能构建高性能、可维护的用户界面;.NET则擅长企业级应用开发。React.NET作为桥梁,使.NET应用轻松采用React构建前端,并优化开发流程与性能。通过直接托管React组件,.NET应用简化了部署流程,同时支持服务器端渲染(SSR),提升首屏加载速度与SEO优化。
28 1
|
2月前
|
存储 缓存 安全
.NET 在金融行业的应用:高并发交易系统的构建与优化之路
【8月更文挑战第28天】在金融行业,交易系统需具备高并发处理、低延迟及高稳定性和安全性。利用.NET构建此类系统时,可采用异步编程提升并发能力,优化数据库访问以降低延迟,使用缓存减少数据库访问频率,借助分布式事务确保数据一致性,并加强安全性措施。通过综合优化,满足金融行业的严苛要求。
34 1
|
2月前
|
大数据 开发工具 开发者
从零到英雄:.NET核心技术带你踏上编程之旅,构建首个应用,开启你的数字世界探险!
【8月更文挑战第28天】本文带领读者从零开始,使用强大的.NET平台搭建首个控制台应用。无论你是新手还是希望扩展技能的开发者,都能通过本文逐步掌握.NET的核心技术。从环境搭建到创建项目,再到编写和运行代码,详细步骤助你轻松上手。通过计算两数之和的小项目,你不仅能快速入门,还能为未来开发更复杂的应用奠定基础。希望本文为你的.NET学习之旅开启新篇章!
29 1
|
2月前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
41 0