《ASP NET 3.5从基础到项目实战》课件第7章 网络安全与验证_第1页
《ASP NET 3.5从基础到项目实战》课件第7章 网络安全与验证_第2页
《ASP NET 3.5从基础到项目实战》课件第7章 网络安全与验证_第3页
《ASP NET 3.5从基础到项目实战》课件第7章 网络安全与验证_第4页
《ASP NET 3.5从基础到项目实战》课件第7章 网络安全与验证_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章网络安全与验证ASP.NET3.5充分考虑到程序开发的安全性,提供了大量的验证控件和角色管理功能,这样可以使开发出来的程序更加健壮。章节内容7.1验证控件7.2身份验证和授权7.3登录控件7.1验证控件在ASP.NET中提供了强大的服务器控件和数据库操作控件。为了使开发人员更方便地验证用户输入,而不再需要编写繁琐的javascript代码,ASP.NET3.5中提供了强大的验证控件。验证控件直接在客户端执行,大大减少了服务器与客户端之间的往返过程。7.1.1使用验证控件的注意事项(1)ControlToValidate:用来设置验证控件所监控的服务器控件。(2)Text:用来显示当用户输入的数据违反了验证规则时,所呈现的信息。如果有ErrorMessage的值,但在Text属性中没有值,则ErrorMessage自动替换Text属性。(3)ErrorMessage:当Text属性值为空时,所呈现的信息。(4)Display:用来设置验证控件显示的状态,它包括以下3个选项。1)None表示不显示Text值,当希望错误消息只显示在ValidationSummary而不是显示在验证控件的位置时,使用这个选项。2)Static选项将总是颠倒验证控件的空间,即使在没有显示它的消息时。3)Dynamic选项将在显示验证控件文本时为其分配空间,并且将页面的剩余部分向右下方推动。(5)EnableClientScript:调用值的客户端检查。7.1.2RequiredFieldValidator控件表单验证主要用来检查页面中的必填项(如用户名、密码等)是否为空。在登录模块中,判断用户登录成功之前首先要保证用户已经向文本框中输入了用户名和密码等必要的选项,否则是无法登录的。在传统的Web开发中,页面需要被发送到服务器并判断表单中的HTML控件的值是否为空,为空时返回错误信息。这种处理模式对用户来说很不友好,用户做了提交操作后,需等待页面的处理结果,而这时页面往往是一片白,很容易引起用户的反感。7.1.3RangeValidator控件RangeValidator控件主要用来控制用户输入的数值、货币等信息的范围,如输入用户的生日时,今年是2010年,那么用户就不应该输入2011年及以后的年份,这样是不合法的。RangeValidator控件在设置时常需要设置的属性如下。MinimumValue:指定有效范围的最小值。MaximumValue:指定有效范围的最大值。Type:指定要比较值的数据类型。ControlToValidate:指定要验证的标准控件的名称。7.1.4CompareValidator控件CompareValidator控件,用来根据一定的参照数据来验证用户的输入是否正确,主要用来验证注册用户的密码正确性等操作。CompareValidator控件的特有属性如下。ControlToCompare:以字符串形式输入的表达式,要与另一控件的值进行比较。Operator:要使用的比较。ValueToCompare:以字符串形式输入的表达式。ControlToValidate:指定要验证的标准控件的名称。7.1.5RegularExpressionValidator控件egularExpressionValidator控件主要用来检查用户的输入,是否符合指定的正则表达式规则。ASP.NET内部封装了一些常用的验证表达式,开发人员在使用时,可以通过正则式控件的ValidationExpression属性来选择或设置。在设置验证表达式时,可以在RegularExpressionValidator控件的ValidationExpression属性中直接输入验证表达式正则验证控件主要用于确定用户输入的值是否与指定的正则表达式模式相匹配,如电子邮件、电话号码以及序列号等。7.1.6ValidationSummary控件验证组控件(ValidationSummary)主要用来对页面中的所有验证控件的提示信息做归类显示。也就是说,当用户填写完数据之后,做提交操作时,对于用户输入不合法的信息,ValidationSummary控件会集中在一起来显示。这样做的目的是使用户更加直观、快捷地发现输入有误的地方,特别是针对于用户填写信息比较多的页面,验证组控件更具有实用价值。ValidationSummary控件通过ErrorMessage属性为页面上的每个验证控件显式错误信息。7.1.6ValidationSummary控件ValidationSummary控件的常用属性如下。DisplayMode:指定如何格式化错误信息,可能的值有BulletList、List和SingleParagraph。HeaderText:在验证摘要上方显示标题文本。ShowMessageBox:显示一个弹出警告窗口。ShowSummary:隐藏页面中的验证摘要。在使用ValidationSummary控件时,同时也需使用其他验证控件来对输入控件进行检测,这是使用ValidationSummary控件的必要前提。7.1.7CustomValidator控件CustomValidator控件除需要开发人员自行定义验证表达式外,其他的使用方法与前面讲解的验证控件类似。使用CustomValidator控件时,最重要的是处理好ServerValidate事件,这样开发人员可以创建功能更强的验证控件,如过滤用户输入的信息等操作。7.2身份验证和授权在ASP.NET中,针对用户身份验证和授权,提供了良好的解决方案,身份验证和授权,对于程序安全开发具有重要的意义。只有通过身份验证的开发人员,才有权利对应用程序进行操作;没有通过身份验证,则不能进行实体的授权。所谓授权是指验证用户可以访问指定的应用程序并执行相应的安全操作。7.2.1Windows身份验证ASP.NET中的Windows身份验证是基于Windows服务器和客户端之间的处理,当请求发送给IIS服务之后,进行验证。在使用Windows身份验证时,首先需要创建用户和组。基于Windows的身份验证,ASP.NET可以方便地处理内联网环境下部署的应用程序。如果用户在本地计算机上登录一个域用户,则访问该域中的计算机时就不需要重复验证。7.2.1Windows身份验证在基于Windows验证中,需要创建用户角色,才能使用这种验证方式,在创建Windows验证用户时,需要管理员具有足够的权限,其创建方法如下依次打开“控制面板”→“管理工具”→“计算机管理”。在“计算机管理”窗口中,依次双击“系统工具”→“本地用户和组”选项。右击“用户”选项,在右键菜单中单击“新用户”命令。在“用户名”文本框中输入test,然后单击“创建”按钮即可。7.2.1Windows身份验证接下来需要在网站项目的web.config中设置Windows授权。在web.config中设置用户授权,通过<authentication>元素来实现,其mode属性用来设置验证类型。<authorization>元素用来设置是否允许用户授权,<deny>元素指定拒绝所有用户访问应用程序,<allow>元素可允许特定用户访问。<system.web><authenticationmode="Windows"/><authorization><allowusers="test"/></authorization></system.web>7.2.2Passport身份验证Passport身份验证是一种用户身份验证服务,站点用户可使用该服务创建单次登录名和密码,从而方便地访问所有启用.NETPassport的网站和服务。Passport身份验证为用户提供了一个签名解决方案,用户凭借这一解决方案就可以登录到Internet站点和其他支持Passport的站点。在Passport身份验证模式中,用户信息存储在ASP.NETPassport服务器上,当用户注册到站点时,就会与该站点共享其个人信息以加快注册过程。当.NETPassport用户再次登录到该站点时,其.NETPassport配置文件可允许访问该站点上的个人账户或服务。7.2.3Forms身份验证Forms身份验证与前面的两种验证方式并称为ASP.NET中的三种代表性的验证方式,Forms验证方式将客户端提供的用户请求发送到服务器,在服务器端确认用户身份之后,将确认信息发送到客户端以通过身份验证,并将验证信息写到客户端的cookie中,这样用户以后再访问这个站点时会将cookie中的验证信息一并发送到服务器端。7.2.3Forms身份验证Forms成员变量属性说明name这是赋予cookie的名称,该cookie用于在请求之间保存用户。其默认值是.ASPXAUTHloginUrl如果没有找到有效的验证cookie,就指定将请求重定向到的URL。其默认值是Login.aspxprotection指定要应用于验证cookie的保护级别,它有以下4个设置。All:应用程序使用数据有效性验证和加密机制来保护cookie。这是默认设置None:不加密cookieEncryption:加密cookie,但不对它进行数据有效性验证。以这种方式使用的cookie可能会受到纯文本攻击Validation:与Encryption设置相反,进行数据有效性验证,但不加密cookiepath指定应用程序所用cookie的路径。在大多数情况下应使用,它是默认设置timeout指定cookie过期后的时间(分钟),其默认值是30cookieless指定在进行验证和授权过程中,基于窗体的身份验证过程是否使用cookiedefaultUrl指定默认的URLdomain指定要与窗体身份验证cookie一起发送的域名slidingExpiration指定是否给cookie应用可变的过期时间。如果该属性设置为True,就对发送给服务器的每个请求重新设置cookie的过期时间。其默认值是FalseenableCrossAppsRedirect指定是否允许跨应用程序的重定向7.2.3Forms身份验证对于Forms验证方式,同样需要在web.config中进行设置,其使用的元素与Windows验证使用的设置方式相同,其代码如下。<system.web><authenticationmode="Forms"><formsname="forms1"loginUrl="Login.aspx"path="/"/></authentication><authorization><denyusers="?"/></authorization></system.web>7.3登录控件登录模块在许多网站中具有非常重要的作用,在第4章中通过ASP.NET3.5的标准控件来设计登录模块的实现,但实际上ASP.NET3.5提供了专门的登录控件,这样开发人员可以直接使用它来提高开发效率。7.3.1Login控件登录控件是一个复合控件,基本构成是:用来输入用户名、密码的TextBox控件和登录按钮。登录按钮将用户账号和密码传送给MembershipAPI进行身份验证。另外登录控件还提供了记录用户登录痕迹的功能,当勾选“下次记住我”复选框后,用户再次访问此网站时,将自动进行身份验证。7.3.1Login控件登录控件的常用属性属性描述UserName用户名文本框内的初始值PasswordLableText密码标识文本框内的文本RememberMeText为“下次记住我”复选框所显示的文本DisplayRememberMe是否显示“下次记住我”复选框RememberMeSet“下次记住我”复选框是否初始化被选中LoginButtonImageUrl为“登录”按钮显示的图像的URLLoginButtonText为“登录”按钮显示的文本LoginButtonType“登录”按钮的类型CreatUserUrl创建用户页的URLFailuteText当登录尝试失败时显示的文本InstructionText为给出说明所显示的文本TitleText为标题显示的文本DestinationPageUrl用户成功登录时被定向到的URLVisibleWhenLoggedIn控件是否在用户登录时保持可见UserNameRequiredErrorMessage用户名为空时,在验证摘要中显示的文本PasswordRequiredErrorMessage密码为空时,在验证摘要中显示的文本7.3.1Login控件登录控件事件事件描述Authenticate当用户使用登录控件登录到网站时,引发该事件LoggedIn对用户进行身份验证后引发该事件LoggingIn对用户进行身份验证前引发该事件LoginError对用户进行用户身份验证失败时引发该事件7.3.2LoginName控件LoginName控件的使用方法非常简单,在指定页面创建LoginName控件之后,使用其FormatString属性来获取用户账户信息,然后在LoginName控件中显示出来。当LoginName控件创建之后,其HTML代码显示如下。<asp:LoginNameID="LoginName1"runat="server"/>7.3.3LoginView控件登录视图控件可以根据用户不同的身份和权限呈现不同的操作界面,登录视图控件解决了以往网站开发过程中针对不同权限的用户进行繁琐的判断和跳转的麻烦,在LoginView控件中通常可以分为两种模式,即匿名模板(AnonymousTemplate)和已登录模板(LoggedInTemplate)。当用户没有登录账号时,网站会自动呈现给用户匿名模板,而无法查看已登录模板中的内容,用户只有登录之后才能查看已登录模板中的内容。在AnonymousTemplate模板中,该模板通过获取和判断PageUser属性的Name子属性进行判断。如果PageUser属性的Name子属性为空时,AnonymousTemplate模板则不会向通过身份验证的用户的呈现相应的页面。7.3.4LoginStatus控件LoginStatus控件又叫做登录状态控件,用来显示用户登录状态,即“登录”和“注销”。当用户为登录时,LoginStatus控件显示为“登录”状态;当用户登录成功之后,LoginStatus控件显示为“注销”状态。LoginStatus控件的状态由Page对象的Request属性中的IsAuthenticated子属性来决定的。7.3.4LoginStatus控件LoginStatus控件成员及使用方法成员描述LoginImageUrl用于为登录链接指定一个图片LoginText用于为登录链接指定文字LogoutAction用于在单击注销链接后发生的页面导航动作。可能的取值为Redirect、Redirect-ToLoginPage和RefreshLogoutImageUrl用于为注销链接指定一个图片LogoutPageUrl用于指定用户注销后返回页面的路径。只有当LogoutAction属性的值为Redirect时,该属性才会生效LogoutText用于为注销链接指定文字LoggingOut(事件)在用户进行注销登录之前触发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论