中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 其他
ASP.NET 2.0中保证应用程序的安全(2)
作者:佚名 时间:2007-09-04 15:23 出处:yesky 责编:月夜寒箫
              摘要:ASP.NET 2.0中保证应用程序的安全(2)

使用登录控件

下面的例子演示了在应用程序中如何使用登录控件。

创建和登录用户

在例子中我们会看到站点的主页,它包含了一个LoginStatus控件,该控件提示用户登录站点。这个页面上的LoginStatus控件检查用户当前是否通过了认证,并向用户显示一个登录链接。用户点击这个链接就可以看到默认的login.aspx页面,在web.config中已经把这个页面配置为窗体认证。Login控件显示在Login.aspx页面上(请注意,在默认的登录页面上登录控件的VisibleWhenLoggedIn属性会被忽略)。在例子中,登录控件设置了额外的属性,显示了"创建用户"链接,点击这个链接会访问另外一个页面,那个页面使用了CreateUserWizard控件。在默认情况下,CreateUserWizard控件包含两个步骤,在第一步中用户输入必要的信息,当他们点击"创建用户"按钮的时候,控件把这些信息传递给成员API。如果成员API不能建立该用户,在控件中会显示适当的错误信息;如果用户创建成功,控件就载入向导的第二步。在例子中,ContinueDestinationPageUrl属性被设置为在用户创建成功之后返回主页。在默认情况下,当用户被成功创建之后,CreateUserWizard会认证并登录用户。当用户返回到主页的时候,他们会注意到LoginStatus被删除了,他们已经通过了认证,并显示了一个登出链接。点击登录链接会引起用户认证票据(ticket)被清除,并显示登录链接。这时用户可以点击登录链接,由于他们已经创建了用户帐号,所以可以在login.aspx上输入用户名和密码来登录网站。你可能注意到Login控件显示了一个"记住帐号(remember me)"检查框。选中这个框并成功登录之后,会向用户的计算机上写入一个cookie,该cookie默认的存续期是50年。你可以通过把Login控件的DisplayRememberMe和RememberMeSet属性设置为false来禁用这个选项。查看示例的代码,你可以发现这项事务并没有任何代码,只设置了少许的几个属性。这些控件的样式属性都是站点应用的样式表设置的。

            

Login.aspx

<%@ Page Language="VB" MasterPageFile="~/Site.master"%>

<asp:Content ID="Content1" ContentPlaceHolderId="MainBody" runat="server">

<asp:login ID="Login1" runat="server" createuserurl="CreateUser.aspx"

createusertext="Create a New Account" />

</asp:Content>

CreateUser.aspx

<%@ Page Language="VB" MasterPageFile="~/Site.master"%>

<asp:Content ID="Content1" ContentPlaceHolderId="MainBody" runat="server">

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server"

continuedestinationpageurl="Home.aspx"/><br />

<a href="Home.aspx">Return to Default Home Page</a><br />

<a href="HomeLoginView.aspx">Return to LoginView Home Page</a><br />

<a href="HomeChangePassword.aspx">Return to ChangePassword Home Page</a><br />

</asp:Content>

向认证用户显示不同的内容

下面的例子演示了使用LoginView控件为认证过的用户和匿名用户显示不同的内容。尽管例子中没有显示什么,但是LoginView控件支持基于用户角色来显示不同内容。LoginView控件中的AnonymousTemplate模板包含了一个登录控件,LoggedInTemplate模板包含了LoginName控件。LoginName控件利用格式化字符串属性来显示欢迎和用户姓名。请使用上一个例子中创建的帐号或重新创建一个帐号来登录站点,并点击页面上方的登出链接。

            

<%@ Page Language="VB" MasterPageFile="~/Site.master"%>

<asp:Content ID="Content1" ContentPlaceHolderId="MainBody" runat="server">

<asp:loginview ID="LoginView1" runat="server">

<loggedintemplate>

<h1>

<asp:loginname id="LoginName1" runat="server" formatstring="Welcome {0}" />

</h1>

</loggedintemplate>

<anonymoustemplate>

<h1>Welcome to Login Controls</h1>

<asp:login ID="Login1" runat="server"

createuserurl="CreateUser.aspx" createusertext="Create a New Account" />

</anonymoustemplate>

</asp:LoginView>

</asp:Content>

修改密码

在默认情况下,ChangePassword控件要求用户通过了站点的认证才能更改他们的密码。但是,在下面的例子中,我们把DisplayUserName属性设置为真,其结果是用户在改变自己的密码之前,可以由ChangePassword控件进行认证,或者通过站点认证的用户输入不同的帐号来改变密码。例子还链接到了创建用户页面,使你能够创建有效的用户并测试示例。

            

<%@ Page Language="VB" MasterPageFile="~/Site.master"%>

<asp:Content ID="Content1" ContentPlaceHolderId="MainBody" runat="server">

<asp:ChangePassword ID="ChangePassword1" runat="server"

createuserurl="CreateUser.aspx" createusertext="Create a New Account"

canceldestinationpageurl="HomeChangePassword.aspx" displayusername="true"

continuedestinationpageurl="HomeChangePassword.aspx"/>

</asp:Content>

使用成员和角色管理器API

成员

成员特性是围绕两个核心类构建的:Membership和MembershipUser。Membership类提供创建用户(MembershipUser类处理)的方法,以及通用的管理用户的方法。用Membership类建立的用户是通过ASP.NET应用程序认证的身份。

Membership类执行的通用事务包括:

◆创建新的MembershipUser

◆当用户试图登录的时候验证用户名-密码组合。接下来你可以使用窗体认证来生成一个cookie,表明用户登录了站点

◆ 检索MembershipUser实例

◆更新MembershipUser实例

◆根据不同的条件搜索用户

◆获取当前在线的通过认证的用户

◆在不需要用户的时候从系统中删除它

一旦你获取了MembershipUser实例,就可以直接使用MembershipUser类执行下面的事务:

◆访问应用程序中的MembershipUser类的属性

◆检索用户的密码(只有把成员特性配置为允许密码检索才可以使用)

◆改变或重置用户的密码

◆改变用户的密码提问和答案(如果成员特性被配置为在检索或更新密码之前,提示用户密码问题和答案)

◆解锁那些因为密码错误或密码答案错误而被锁定的用户

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有