Asp.net2.0身份验证技术学习入门---新用户注册,登录,显示用户信息

发布时间: 2007-01-25 11:30    作者: 未知    来源: 未知    浏览:    评论

  这一篇开始讲解如何快速添加一个新用户,非常的简单,首先在我们上一篇建好的网站中新建一个UserReg.aspx页,加入一个CreateUserWizard控件,在设计视图下选中控件,在控件的属性栏里的“行为”里把ContinueDestination的URL设定为创建完新用户后点击“继续”按键你想要转到的页面。我这里设的是Default.aspx,也就是当注册完成后点“继续”会转到Default.aspx这一页,当然,我们还要在Default.aspx中做一些设置用来查看我们刚注册完成的用户的相关信息。

UserReg.aspx具体内容如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UserReg.aspx.cs" Inherits="UserReg" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>用户注册</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" BackColor="#F7F6F3" BorderColor="#E6E2D8"
            BorderStyle
="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ContinueDestinationPageUrl="~/Default.aspx">
            
<WizardSteps>
                
<asp:CreateUserWizardStep runat="server">
                
</asp:CreateUserWizardStep>
                
<asp:CompleteWizardStep runat="server">
                
</asp:CompleteWizardStep>
            
</WizardSteps>
            
<SideBarStyle BackColor="#5D7B9D" BorderWidth="0px" Font-Size="0.9em" VerticalAlign="Top" />
            
<TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            
<SideBarButtonStyle BorderWidth="0px" Font-Names="Verdana" ForeColor="White" />
            
<NavigationButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
                BorderWidth
="1px" Font-Names="Verdana" ForeColor="#284775" />
            
<HeaderStyle BackColor="#5D7B9D" BorderStyle="Solid" Font-Bold="True" Font-Size="0.9em"
                ForeColor
="White" HorizontalAlign="Center" />
            
<CreateUserButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
                BorderWidth
="1px" Font-Names="Verdana" ForeColor="#284775" />
            
<ContinueButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
                BorderWidth
="1px" Font-Names="Verdana" ForeColor="#284775" />
            
<StepStyle BorderWidth="0px" />
        
</asp:CreateUserWizard>
        
&nbsp;
    
    
</div>
    
</form>
</body>
</html>

   在Default.aspx.CS页面中,我们要显示出当面用户的名字,邮箱地址,注册时间,上一次登录的时间等: 

protected void Page_Load(object sender, EventArgs e)
    
{
        
if (User.Identity.IsAuthenticated)//判断当前用户是否已登录
        
            MembershipUser u 
= Membership.GetUser(User.Identity.Name);//用当前用户进行实例化
            Response.Write(u.UserName 
+ "</p>");//用户名字
            Response.Write(u.Email + "</p>");//用户EMAIL
            Response.Write(u.CreationDate + "</p>");  //用户注册时间
            Response.Write(u.LastActivityDate + "</p>"); //用户上一次登录时间
        }
  
        
else
        
{
            Response.Write(
"请先登录"); 
        }
      
    }

  然后在Default.aspx页面里添加一个LoginStatus控件,这个控件可以根据用户是否登录而分别显示出“登录”及“注销”两种状态。接下来我们还要再新一个Login.aspx页面做为我们的登录页,在页面里加入一个Login控件,之后可以修改一下Login控件的属性,DestinationPageUrl="~/Default.aspx"设定登录后默认转到的页面,CreateUserText="注册" CreateUserUrl="~/UserReg.aspx"设定点击注册后转到的注册页地址,PasswordRecoveryText="忘记密码"  PasswordRecoveryUrl="~/ResetPassword.aspx"设定点击忘记密码后转到找回密码的页面地址

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>无标题页</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:Login ID="Login1" runat="server" BackColor="#F7F6F3" BorderColor="#E6E2D8" BorderPadding="4"
            BorderStyle
="Solid" BorderWidth="1px" CreateUserText="注册" CreateUserUrl="~/UserReg.aspx"
            Font-Names
="Verdana" Font-Size="0.8em" ForeColor="#333333" PasswordRecoveryText="忘记密码"
            PasswordRecoveryUrl
="~/ResetPassword.aspx" DestinationPageUrl="~/Default.aspx" >
            
<TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" ForeColor="White" />
            
<InstructionTextStyle Font-Italic="True" ForeColor="Black" />
            
<TextBoxStyle Font-Size="0.8em" />
            
<LoginButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px"
                Font-Names
="Verdana" Font-Size="0.8em" ForeColor="#284775" />
        
</asp:Login> </div>
    
</form>
</body>
</html>

   接下来我们还要再建一个页面ResetPassword.aspx用来找回密码,在页面中添加一个PasswordRecovery控件,当忘记了密码转到这个页面时,它首先会让你输入用户名,之后输入密码问题的答案,如果正确的话就把新密码发到你的邮箱里,我的电脑没有设置SMTP所以不能发邮件,这个功能大家自己试吧!

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ResetPassword.aspx.cs" Inherits="ResetPassword" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>无标题页</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:PasswordRecovery ID="PasswordRecovery1" runat="server" BackColor="#F7F6F3" BorderColor="#E6E2D8"
            BorderPadding
="4" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana"
            Font-Size
="0.8em">
            
<InstructionTextStyle Font-Italic="True" ForeColor="Black" />
            
<SuccessTextStyle Font-Bold="True" ForeColor="#5D7B9D" />
            
<TextBoxStyle Font-Size="0.8em" />
            
<TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" ForeColor="White" />
            
<SubmitButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
                BorderWidth
="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" />
        
</asp:PasswordRecovery>
    
    
</div>
    
</form>
</body>
</html>

   呵呵,验证工作可以告一段落了,糟糕,忘记了一件重要的事情,忘记在Web.Config里设定要保护的页面了,我们搞验证不就为的这个么?先在网站里建立一个文件夹“ADMIN”在这个文件夹里新建一个Admin.aspx文件,在这个文件里先随便打几个字“Admin OK!!!”,然后再打开Web.config加入:

<location path="Admin">
    
<system.web>
      
<authorization>
        
<deny users="?" />        
      
</authorization>
    
</system.web>
  
</location>

  要注意这段代码是加在</system.web>和</configuration>中间的,<deny users="?" />这句话的意思是拒绝所有非授权用户访问ADMIN文件夹。

  好了,这下基本上就完成了,大家自已开始试验吧,下一篇开始介绍角色创建及管理。



TAG

Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多