您的位置:首页 > 编程语言 > ASP

Asp.net2.0身份验证技术学习入门---创建验证

2007-02-24 21:02 579 查看

没有笔的博课

function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}



Asp.net2.0身份验证技术学习入门---创建验证


  ASP.NET2.0里内建了7个用户验证控件及3个用户、角色管理类分别是MemberShip MembershipUser Roles如此一来在WEB项目中使用基于FORMS模式的验证时就不用像以前一样自已写一大堆代码又是判断又是创建验证票……现在可幸福了,尤其是刚入门的新手,使用FORMS验证真是一件轻松而有成就感的事情呀。好了,下面就开始正式讲解如何使用NET2.0提供的新技术来做用户验证,文章会分成很多篇,基本上每一篇文章讲的就是一个实际使用中的页面,第一篇首先讲一下如何创建验证。

  Asp.net2.0和以前一样还是支持Windows Forms Passport三种身份验证,默认使用的是Windwos模式,而我们要介绍的是最广泛使用的FORMS验证,打开VS2005,新建一个网站,打开VS2005菜单“网站”---“ASP。NET配置”选择“安全”标签,“选择身份验证类型”---“通过 Internet ”完成后选择“创建用户”之会后打开一个注册用户的页面,每一项都要填写,这里要注意,密码默认最小7位,而且必需有一个非数字和字母的特殊字符(如标点符号),用户名可以随便输,我们创建这个用户的是为了让VS2005自动给我们生成一个名为ASPNETDB.MDF的SQLEXPRESS数据库,这个数据库是用来存放用户数据的,会自动放到你网站下的App_Data文件夹中,这个数据库在VS2005中可以打开,即使你没有安装SQLSERVER。但是请注意不要自己修改这个数据库的结构,负责在调用MemberShip MembershipUser Roles这几个类的时候会出错,这里再多说两句,SQLEXPRESS是一个简化的SQLSERVER数据库,是包含在VS2005里的,我记得这个数据库好像是免费的,可以从自由微软网上直接下,它可以使用存储过程,虽然没有SQLSERVER功能强大,但是比ACCESS可是强了很多,VS2005里的身份验证默认是使用这个数据库,如果你想要使用ACCESS或SQLSERVER数据库的话,那就必须使用MemberShipPorvider类进行一系列的重写操作来自定义,有一定的难度,这里我们就不去讨论了。

  接下来在VS2005里按F5会自动生成一个Web.config,我们在Web.config里修改一下设置:


<authentication mode="Forms">


<forms name=".ASPXAUTH"


loginUrl="login.aspx"


protection="All"




slidingExpiration="true"


timeout="20"


path="/" />


</authentication>

  第一行的mode属性指定了我们要使用Forms方式进行验证;第二行name指定Cookie的名称;如果只有一个WEB程序使用验证则不用设置此项;第三行指的是默认的登录页面地址及名称;第四行设的是Cookie保护的类型,这个设置通常使用默认;第五行设置COOKIE的过期机制为可调,如果要使用绝对过期就设为false(过期机制的概念在上一篇讲缓存时有介绍);第六行设定了过期时间为20分钟;第七行设定使用验证的WEB程序的路径,如果只有一个WEB程序使用验证则不用修改。

  还要加入关于MemberShip的设置:


<membership defaultProvider="AspNetSqlProvider">


<providers>


<add name="AspNetSqlProvider"


type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"


connectionStringName="LocalSqlServer"


minRequiredPasswordLength="6"


minRequiredNonalphanumericCharacters="0"


enablePasswordRetrieval="false"


enablePasswordReset="true"


requiresQuestionAndAnswer="true"


requiresUniqueEmail="true"


maxInvalidPasswordAttempts="5" />


</providers>


</membership>

  这个里面的设置比较多,我只设置了其中一部分,minRequiredPasswordLength设定的是密码的最小长度;minRequiredNonalphanumericCharacters设定的是密码中包含非字母非数字字符的数量;enablePasswordRetrieval设定是否允许用户密码检索;enablePasswordReset设定是否能对密码进行重置;requiresQuestionAndAnswer设定是否使用密码提示问题来取回忘记的密码;requiresUniqueEmail设定每个注册用户的邮件地址能否重复;maxInvalidPasswordAttempts 设定当用户登录时输入密码错误几次后才对用户进行锁定。

  好了,现在验证已经开启,我们可以在页面中使用现成的控件进行方便的操作了!下一篇开始讲解用户登录。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1445665
没有笔发表于 2006年12月16日 17:49:13
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: