--不写一行代码在asp.net中实现用户验证管理系统
这篇文章我们将实现一个简单的网站,在网站中实现用户的身份验证,创建用户,修改密码 还有限制匿名用户访问某些目录等功能,最神奇的是使用asp.net2.0实现我们几乎不用手工写一行代码。--不知道以后程序员要做些什么事了:(!!
我们手工从头创建一个web应用,学习其中的一些技术,这个应用将要完成的任务有
1. 创建一个包含membership服务的web应用,创建一个用户
2. 使用login控件,得到用户的凭证以及显示登录用户的信息
3. 在网站里创建一个目录 里面的页面只有登录用户才能访问
4. 允许网站创建新用户
5. 用户可以修改和重置
我的开发环境windows2003,iis6.0,vs2005 team suit英文版,sql server2005 express
工作开始
一、在本地IIS上创建一个网站
1. 打开visual studio,file菜单,选择 New web site
2. 选择asp.net web site,在location下来框里选择http,然后点击browser按钮,在弹出框里选择local IIS,打开Local Web Server,选择默认网站(default web site),点击对话框右上的Create New Web Application图标,命名为membership,点击open按钮关闭对话框。
3. 选择工作语言(c#等),以后在创建其他网页时 可以选择不同的语言 :)
4. 点击OK
网站创建后 会默认生成一个default.aspx页面 我们留着他就可以了,也可以删除他 重新创建一个页面
二、配置membership
1. 创建一个新的文件夹在网站里命名为MemberPages
2. 创建一个membeship用户
a. 在菜单website里选择Asp.net configuration,在打开的网页里选择Security tab页,点击Use the security Setup Wizard to configure security step by step链接。
b. 在向导第2步里选择 From the Internet 选项 这里是让你的网站使用Form的身份认证,原因在membership介绍 文章里讲过。
c. 点击Next 这步还是默认使用sql server2005 express并会在App_Data目录里生成数据库文件。
d. 点击Next 这里不要选择Enable roles for this web site
e. 点击Next 这时是创建一个用户 输入User Name ,Password,,E-mail, Security Question and Security Answer ,创建用户。这里顺便说一下 membership默认的密码设置是比较严格的需要字母数字加特殊字符,其实我们可以在web.config中给membership的密码指定一个正则表达式 来修改密码的规则。具体可以在msdn中查找
3. 创建一个规则 限制访问一个指定的目录
a. 接着刚才的向导继续next,进入创建访问规则页面,在显示网站目录的框里,展开目录,选择刚才我们创建的MemberPages的文件夹。
b. 在Rule applies to下选择Anonymous users,在Permission下选择deny,这样就限制了匿名用户访问目录的权限。
c. 点击add this rule权限创建,接着是Finish.
三、为应用配置一个E-mail
这个操作的目的是为了恢复密码时发送密码给用户
还是在asp.net configuration的网页里 选择Application tab页面,在Smtp Settings下 点击Configure SMTP e-mail settings.链接,这个配置一个smtp服务器以及一个email账号。
配置完email就可以关闭 这个配置页面了。
四、用户登录
打开default.aspx页面,使用design视图,在上面写个welcome什么的,然后拖上一个login控件组里的loginstatus控件。接着建一个login.aspx页面,在这个例子里我们的页面的名字一定要取成login.aspx,在默认情况下 当匿名用户访问受限制的页面时,会自动转到login.aspx,这个默认设置可以通过配置更改的,这里我们就使用默认。
在login.aspx页面上拖放一个login控件组里的login控件,再放置一个ValidationSummary控件,用来现实填写的出错信息,将ValidationSummary的ValidationGroup属性设置成login控件的id名称。
显示登录用户信息
选择default.aspx页面拖上一个loginview控件,使用loginview智能标签(smart tag),选择模板AnonymousTemplate,写上”你没有登录,点击login链接登录”,然后再选择模板LoggedInTemplate,写上”欢迎”字符,再在后面拖上一个loginname控件。
这之后,你可以先测试一下你的页面 使用我们上面建立的用户进行登录,看看不同的显示。
五、建立只能用户访问的页面
在我们上面建立的MemberPages文件夹里建立一个Members.aspx页面,写上welcome member,然后 我们在default.aspx页面上拖一个HyperLInk控件,在NavigateUrl属性里写上~/memberPages/Members.aspx
这里也可以进行一次测试
六、创建新用户
在根目录里建立一个register.aspx,在页面上拖放一个CreateUserWizard控件并把它的ContinueDestinationPageUrl属性设置成~/default.aspx,这个属性是对你点击Finish之后跳转的页面。接着在页面里添加一个Hyperlink控件,NavigateUrl设置成~/default.aspx.最后在default.aspx页面里添加一个指向register.aspx页面的链接,为了好看一点 我们把这个链接放到loginview控件的AnonymousTemplate模板里。
测试一下
七、修改密码
在MemberPages文件夹里创建一个ChangePassword.aspx文件,拖上一个ChangePassword控件也把它的ContinueDestinationPageUrl属性设置成~/default.aspx。接着在default.aspx页面里添加一个指向changepassword.aspx页面的链接, 我们把这个链接放到loginview控件的LoggedInTemplate模板里。
测试
八、重置密码
在根目录里建立一个recoverypassword.aspx文件,拖一个passwordrecovery控件,并放一个链接指向default.aspx.之后在default.aspx的loginview控件的AnonymousTemplate模板里添加一个链接指向recoverypassword控件。
测试
这样整个例子完成 大家也可以看到 我们没有写一行代码。:)
本文转自 lu xu 博客园博客,原文链接: http://www.cnblogs.com/dotLive/archive/2006/07/15/451441.html ,如需转载请自行联系原作者