`

ASP.NET身份验证机制membership入门——控件篇

阅读更多

在前面两篇文章里,我们了解了一下如何配置membership以及roleManager,那么配置成功后又该如何应用呢?其实ASP.NET给我们提供了一套登录控件,我们可以使用这套控件,轻松的来完成一些通用的功能,例如:注册,登录等。

 

 

  那么配置好之后第一件事情就是注册用户了,注册用户其实很简单,我们只需新建一个页面,然后在页面中拖出一个CreateUserWizard控件,然后运行页面。好了,没有写一行代码,但是注册功能就已经实现了!就是这么简单!效果见下图:

 

 

 

 

  所有的文本框都是不能为空的,填完所有的空后,点击创建用户。这时,用户就已经被创建了。方便吧!需要注意的是在输入密码时可能会出现“密码最短长度为 7,其中必须包含以下非字母数字字符: 1。 ”这样的提示。这是因为我们在配置的时候<membership>节点下<add>中有两项配置是这样写的:

minRequiredPasswordLength="7" 
minRequiredNonalphanumericCharacters="1" 

  第一个minRequiredPasswordLength="7"是密码最短长度,我们设定的密码最短为7位

 

 

  第二个minRequiredNonalphanumericCharacters="1"这个配置的意思就是说密码中必须包含不是字母也不是数字的字符的个数,是为了加强密码强度,不过这个提示还真是容易让用户费解,我建议还是把这个配置设为0。

 

 

   这些提示可能有些给人感觉有点不是非常确切,不过我们可以在该控件的属性窗口中去修改提示的文本,例如:

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" 
            InvalidPasswordErrorMessage="密码最短长度为  {0},其中必须包含以下非字母数字字符: {1}。">
            <WizardSteps>
                <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
                </asp:CreateUserWizardStep>
                <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
                </asp:CompleteWizardStep>
            </WizardSteps>
        </asp:CreateUserWizard>

 其他提示属性可以再设计模式下,看到中文提示,就不在一一说明了。

 

 

  从上面的过程我们可以看到,web.config中的配置是会影响到前台控件的功能的,例如:requiresUniqueEmail用 来设置是否需要唯一的Email,当用户输入的Email之前被注册过时,如果该选项为“true”则会给出错误提示,反之则不然。又比如:当 requiresQuestionAndAnswer=”true"时,CreateUserWizard控件就会要求用户输入安全提示问题和安全答案, 当该选项为"false"时,则不会要求输入提示问题和答案。

 

 

  当然如果我们要把这个控件用到项目中去,默认的外观真的不能算是好看,那么能不能去改变控件的默认外观呢?答案是肯定的!来看如下代码

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" 
    InvalidPasswordErrorMessage="密码最短长度为  {0},其中必须包含以下非字母数字字符: {1}。" 
    ContinueDestinationPageUrl="~/Default2.aspx">
    <WizardSteps>
        <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
        <ContentTemplate>
            <table border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td>用户名:</td>
                    <td><asp:TextBox runat="server" ID="UserName"></asp:TextBox></td>
                </tr>
                <tr>
                    <td>密码:</td>
                    <td><asp:TextBox runat="server" ID="Password"></asp:TextBox></td>
                </tr>
                <tr>
                    <td>确认密码:</td>
                    <td><asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password"></asp:TextBox></td>
                </tr>
                <tr>
                    <td>Email:</td>
                    <td><asp:TextBox runat="server" ID="Email"></asp:TextBox></td>
                </tr>
                <tr>
                    <td>安全提示问题:</td>
                    <td><asp:TextBox runat="server" ID="Question"></asp:TextBox></td>
                </tr>
                <tr>
                    <td>安全答案:</td>
                    <td><asp:TextBox runat="server" ID="Answer"></asp:TextBox></td>
                </tr>
                <tr>
                    <td colspan="2" class="style1"><asp:Literal runat="server" ID="ErrorMessage"></asp:Literal></td>
                </tr>
            </table>
        </ContentTemplate>
        </asp:CreateUserWizardStep>
        <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
        <ContentTemplate>
            <table border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td>恭喜!帐户注册成功!</td>
                </tr>
                <tr><asp:Button runat="server" ID="ContinueButton" CommandName="Continue" Text="完成" /></tr>
            </table>
        </ContentTemplate>
        </asp:CompleteWizardStep>
    </WizardSteps>
</asp:CreateUserWizard>

 上面的例子使用了自定义模板的方式定制了CreateUserWizard控件的外观,在CreateUserWizardStep下<ContentTemplate>中添加自定义内容,效果见下图:

 

 

 

 

 

    填写所有内容后,点击创建用户。<CompleteWizardStep>中内容就会显示出来 。效果如下:

 

 

 

 

 

  需要注意的是:所有文本框控件的ID属性都是固定的。见下表

 

 

  UserName:用户名,必选

 

  Password:密码,必选

 

  ConfirmPassword:确认密码,可选

 

  Email:Email如果web.config中RequireEmail为true,则必选

 

  Question:密码找回提示问题,如果requiresQuestionAndAnswer为true,则必选

 

  Answer:密码找回答案,同上

 

  ErrorMessage:错误提示,可选,这个需要是Label控件或是Literal控件

 

 

  按钮则需要设置CommandName属性。一共有3种:

 

 

  Cancel:取消按钮,可选,可以通过修改CreateUserWizard控件的CancelDestinationPageUrl属性,来设定当用户取消时跳转的页面

 

  Continue:继续按钮,可选,可以通过修改ContinueDestinationPageUrl属性,来设定当用户注册完成点击继续按钮时跳转到的页面

 

  CreateUser:注册按钮,可选。

 

 

  基本上,注册的功能就已经全部实现了。但是有一部分网站在你注册成功后,向你注册的邮箱中发送一封注册确认邮件。这个功能如果要我们自己写,也 是比较麻烦的。其实CreateUserWizard控件给我们提供了这个功能,只需要简单的设置一下,那么在用户注册成功后,将会立刻收到一封确认邮 件。具体的实现过程如下:

 

 

  在CreateUserWizard控件中加入如下代码:

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" >
            <MailDefinition         BodyFileName="~/mail.txt"
            Priority="High" 
            From="123@123.com"
            IsBodyHtml="true"
            Subject="新用户注册通知!">
            <EmbeddedObjects>
                <asp:EmbeddedMailObject Name="customerPic" Path="~/images/DSC00130.jpg" />
            </EmbeddedObjects>
            </MailDefinition>
    <WizardSteps>
            代码省略...
    </WizardSteps>
</asp:CreateUserWizard>

 <MailDefinition>这个节点就是确认Email相关的设置,每个属性的具体含义为:  

 

    BodyFileName:邮件的正文,邮件的正文存放在一个文本文件中,通过该属性指明文本文件的路径即可。

 

    Priority:优先级。

 

    From:发件人,这个Email就是让注册用户看到的发件人的地址。

 

    IsBodyHtml:指明发送的正文中是否为HTML,如果在正文中使用了html标签,就必须把该属性设为“true”

 

    Subject:邮件标题

 

    <EmbeddedObjects>:在邮件中嵌入的资源列表,如上例,在邮件中可以使用<img src="cid:customerPic" alt="test" />这样的代码来引用

 

 

  下面列举mail.txt的内容:

<html>
<head><title></title></head>
<body>
  <h1>欢迎您注册本网站</h1>
  <p>
    您的用户名为:<% UserName %><br/>
    您的密码为:<% Password %>
  </p>
  <p>
  <a href="http://www.cnblogs.com/xlb2000">
    <img src="cid:customerPic" alt="" />
  </a> 
  </p>
</body>
</html>

 需要说明的是:在发送邮件之前,控件会将<% UserName %>和<% Password %>分别替换为刚才注册过的用户名和密码。

 

 

  还差最后一步:就是需要添加服务器smtp设置,配置如下:

<configuration>
<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network">
      <network host="smtp.163.com" userName="用户名" password="密码" port="25"/>
    </smtp>
  </mailSettings>
</system.net>
<system.web>
</system.web>
</configuration>

 这个配置告诉CreateUserWizard控件,在发送邮件时的邮件服务器,用户名密码,端口(默认25)等信息

 

 

 

  ok所有配置全部搞定,现在赶紧试着去注册一个用户吧!

 

 

 

 

 

  有注册当然就得有登陆,密码找回,等等这些功能了,MS也当然给我们提供了这些组件,不过相比CreateUserWizard控件就比较简单了,在这里就不再详述,具体参考msdn就可以了。

分享到:
评论

相关推荐

    《圣殿祭司的ASP.NET2.0开发详解——使用C#》

    6. ** membership 和 role management**:阐述ASP.NET 2.0的安全特性,如身份验证(Membership)、角色管理(Role Manager),以及如何实现用户注册、登录和权限控制。 7. **配置和部署**:指导读者如何配置ASP.NET...

    Wrox电子相册源码

    本篇将深入探讨一款基于ASP.NET技术的电子相册源码——"Wrox电子相册",通过对源码的解析,帮助读者了解如何利用.NET框架构建一个完整的相册应用。 首先,让我们了解一下ASP.NET。ASP.NET是由微软公司推出的Web应用...

    含热电联供的智能楼宇群协同能量管理策略:基于多主体协同与需求响应的热电混合运行策略研究,“基于Stackelberg博弈与需求响应的智能楼宇群热电协同能量管理策略”,MATLAB代码:含热电联供的智能

    含热电联供的智能楼宇群协同能量管理策略:基于多主体协同与需求响应的热电混合运行策略研究,“基于Stackelberg博弈与需求响应的智能楼宇群热电协同能量管理策略”,MATLAB代码:含热电联供的智能楼宇群协同能量管理 关键词:楼宇能量管理系统;热电联供系统;Stackelberg博弈;需求响应 参考文档:《含热电联供的智能楼宇群协同能量管理》华北电力硕士lunwen 仿真平台:MATLAB 主要内容:本文提出了一种计及热电耦合需求响应的智能楼宇群的多主体协同能量管理策略。 传统热电联供系统采取单一的“以电定热”或“以热定电”运行策略,在实际运用中将无可避免地造成能源的浪费。 针对这一现状,本文采取“热电混合运行”策略对联供系统进行调控,在该运行策略下,运营商可以结合不同时段的价格信息、负荷水平等因素灵活采取使自身收益最大化的运行策略。 在热电协同能量管理层面,以楼宇群运营商的收益以及用户的效益最大化为目标,提出了智能楼宇群内部的优化定价策略,运营商在系统中负责向用户供电与供热,并自主制定电与热价格引导用户进行需求响应;其次,用户具有可平移电负荷以及可削减热负荷,可根据当前的价格信息自

    随机规划下的虚拟电厂与微网双不确定性优化调度模型研究:基于MATLAB与CPLEX的仿真平台实现,计及双重不确定性的虚拟电厂微网日前随机优化调度策略-基于MATLAB与CPLEX平台的研究,MATL

    随机规划下的虚拟电厂与微网双不确定性优化调度模型研究:基于MATLAB与CPLEX的仿真平台实现,计及双重不确定性的虚拟电厂微网日前随机优化调度策略——基于MATLAB与CPLEX平台的研究,MATLAB代码:计及源-荷双重不确定性的电厂 微网日前随机优化调度 关键词:电厂 微网 随机优化 随机调度 源-荷双重不确定性 电厂调度 参考文档:《Virtual power plant mid-term dispatch optimization》参考其燃气轮机、以及储能部分模型,另外随机优化算法也是和该文档一致; 仿真平台:MATLAB+CPLEX 主要内容:代码主要做的是一个电厂或者微网单元的日前优化调度模型,考虑了光伏出力和负荷功率的双重不确定性,采用随机规划法处理不确定性变量,构建了电厂随机优化调度模型。 具体来看,首先是基于蒙特卡洛算法,对预测的光伏以及负荷曲线进行场景生成,然后基于快概率距离快速消除法进行削减,直至削减至5个场景,然后采用随机调度的方法,对多场景下的电厂调度策略进行优化,程序实现效果良好,纯程序为本人亲自所写,一行一注释, ,关键词:虚拟电厂; 微网; 随

    rsyslog-mmaudit-8.24.0-57.el7-9.3.x64-86.rpm.tar.gz

    1、文件内容:rsyslog-mmaudit-8.24.0-57.el7_9.3.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/rsyslog-mmaudit-8.24.0-57.el7_9.3.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊

    基于Web的增材制造预处理平台的设计与实现.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用

    博客系统完整开发流程(上)

    前端博客系统代码

    18考试真题最近的t67.txt

    18考试真题最近的t67.txt

    Javaweb期中作业会议管理系统,SSM+JSP.zip(课设&实训&大作业&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用

    基于Plecs的模块化多电平换流器设计:PMW调制下的小输出电压纹波半桥子模块实现,基于Plecs实现的模块化多电平半桥换流器,采用PWM调制方式实现低电压纹波输出,用plecs实现的模块化多电平流器

    基于Plecs的模块化多电平换流器设计:PMW调制下的小输出电压纹波半桥子模块实现,基于Plecs实现的模块化多电平半桥换流器,采用PWM调制方式实现低电压纹波输出,用plecs实现的模块化多电平流器,调制方式是PMW,输出电压纹波小,子模块是半桥 ,关键词提取结果:plecs;模块化多电平换流器;PWM调制;输出电压纹波小;半桥子模块;,《Plecs模拟模块化半桥式PWM多电平换流器》——输出低纹波电压的研究与应用

    最新更新!!!上市公司-股票流动性指标(2000-2023年)

    ## 01、数据简介 股票流动性是指股票在市场上被买卖的容易程度和速度,即投资者能够在不造成显著价格变动的情况下迅速买卖股票的能力。 Amihud指标结果这是一个衡量股票流动性的指标,为股票在一段时间的收益率与交易额的比值的负对数值。如果股票交易量的变动会带来股价的剧烈波动(暴涨暴跌),则Amihud指标越大,股票流动性越差;反之,如果交易量的变化对股价变化的影响越小,则说明股票的流动性较好。由于这是一个计算结果,因此需要根据实际的股票交易数据来计算。 数据名称:上市公司-股票流动性指标 数据年份:2000-2023年 ## 02、相关数据 stkcd、年份、证券代码、Amihud指标结果、交易天数。

    Simulink在DSP2833x开发板上的电机控制与通讯模型自动生成代码教程,Simulink在DSP2833x开发板上的电机控制与通讯模型自动生成代码教程,模型开发域控制Simulik自动生成代码

    Simulink在DSP2833x开发板上的电机控制与通讯模型自动生成代码教程,Simulink在DSP2833x开发板上的电机控制与通讯模型自动生成代码教程,模型开发域控制Simulik自动生成代码 DSP2833x基于模型的电机控制设计 MATLAb Simulik自动生成代码 基于dsp2833x 底层驱动库的自动代码生成 MATLAB Simulink仿真及代码生成技术入门教程 内容为Simulink在嵌入式领域的应用,具体是Simulink在DSP28335这块开发版上的应用模型:包括直流电机、PMSM、步进电机控制模型,还有常见的LED、串口、CAN等通讯相关Simulink模型,模型都有相关解释文件。 ,核心关键词: Simulink应用; DSP2833x开发版; 电机控制模型; 直流电机模型; PMSM模型; 步进电机模型; LED模型; 串口模型; CAN通讯模型; 自动代码生成; 底层驱动库。,MATLAB Simulink在DSP2833x上的嵌入式开发:自动生成代码的模型应用与实践教程

    19考试真题最近的t24.txt

    19考试真题最近的t24.txt

    C51/STM32仿真软件,主要通过三极管、电阻、电容、单片机等等元器件进行搭载电路,软件程序调试的过程,完成项目功能

    protues8.17安装包,无须积分,即可下载

    计及电动汽车灵活性的微网三阶段多时间尺度协调调度模型:优化经济调度、实时调整与减少功率波动策略,计及电动汽车灵活性的微网多时间尺度经济协调调度模型,计及电动汽车灵活性的微网多时间尺度协调调度模型 摘要

    计及电动汽车灵活性的微网三阶段多时间尺度协调调度模型:优化经济调度、实时调整与减少功率波动策略,计及电动汽车灵活性的微网多时间尺度经济协调调度模型,计及电动汽车灵活性的微网多时间尺度协调调度模型 摘要:构建了含有电动汽车参与的微网 电厂多时间尺度协调优化模型,其中包括日前-日内-实时三阶段,日前阶段由于风光出力具有不确定性,结合风光预测值作初步经济调度;日内阶段,风光出力观测的更加准确,通过调节储能、需求响应等单元对调度方案作进一步调整,避免遭受高额的不平衡惩罚;实时阶段,风光出力的预测结果更准确,为了进一步降低微网与上级电网并网功率的波动性,充分利用电动汽车的灵活性,调度电动汽车的充放电以减少功率波动,兼顾调度的安全性与经济性。 ,微网协调调度模型; 电动汽车灵活性; 多时间尺度; 风光出力; 储能需求响应; 实时调整; 经济性,电动汽车灵活性的微网多尺度协调调度模型研究

    基于MPC的电动汽车分布式协同自适应巡航控制:上下分层控制与仿真结果展示,基于MPC的电动汽车协同自适应巡航控制:上下分层控制与仿真结果展示,基于MPC的分布式电动汽车协同自适应巡航控制,采用上下分层

    基于MPC的电动汽车分布式协同自适应巡航控制:上下分层控制与仿真结果展示,基于MPC的电动汽车协同自适应巡航控制:上下分层控制与仿真结果展示,基于MPC的分布式电动汽车协同自适应巡航控制,采用上下分层控制方式,上层控制器采用模型预测控制mpc方式,产生期望的加速度,下层根据期望的加速度分配扭矩;仿真结果良好,能够实现前车在加减速情况下,规划期望的跟车距离,产生期望的加速度进行自适应巡航控制。 ,关键词:MPC(模型预测控制); 分布式电动汽车; 协同自适应巡航控制; 上下分层控制方式; 期望加速度; 扭矩分配; 仿真结果良好; 前车加减速; 跟车距离。,基于MPC的分层控制电动汽车自适应巡航系统,仿真实现前车加减速跟车距离自适应

    MATLAB代码实现电-气-热综合能源系统耦合优化调度模型:精细注释与实用模块子程序,MATLAB实现电-气-热综合能源系统优化调度的精细化建模与求解策略利用电网、热网与气网耦合交互的复杂系统特性进行

    MATLAB代码实现电-气-热综合能源系统耦合优化调度模型:精细注释与实用模块子程序,MATLAB实现电-气-热综合能源系统优化调度的精细化建模与求解策略利用电网、热网与气网耦合交互的复杂系统特性进行深度调度分析,MATLAB代码:电-气-热综合能源系统耦合优化调度 关键词:综合能源系统 优化调度 电气热耦合 参考文档:自编文档,非常细致详细,可联系我查阅 仿真平台:MATLAB YALMIP+cplex gurobi 主要内容:代码主要做的是一个考虑电网、热网以及气网耦合调度的综合能源系统优化调度模型,考虑了电网与气网,电网与热网的耦合,算例系统中,电网部分为10机39节点的综合能源系统,气网部分为比利时20节点的配气网络,潮流部分电网是用了直流潮流,气网部分也进行了线性化的操作处理,代码质量非常高,保姆级的注释以及人性化的模块子程序,所有数据均有可靠来源 ,关键词:综合能源系统; 优化调度; 电气热耦合; 10机39节点; 比利时20节点; 直流潮流; 线性化处理; MATLAB YALMIP; cplex gurobi。,MATLAB代码:电-气-热综合能源系统耦合优化调度

    元器件基础知识文档(适合初学者学习)

    报告电子元器件手册目录,常见电子元器件的参考资料以及70种电子元器件封装等等,非常适合初学者进行学习和掌握。希望大家都能够在电子领域进行深耕。

    19考试真题最近的t63.txt

    19考试真题最近的t63.txt

Global site tag (gtag.js) - Google Analytics