Membership学习(一)

Membership学习(一) Membership介绍
     Asp.net的membership提供了一种存储,验证和管理用户信息以及权限的统一的路径。membership所对应的验证方式是asp.net的Forms身份验证(注:asp.net的身份验证方式 有好几种包括windows身份验证 Forms身份验证 Passport身份认证当然还有就是没有验证)。在vs2005中 还给membership提供了一系列的控件(login控件),能方便的在asp.net实现membership。
     具体来说membership能实现:
     1.   创建用户
     2.   可以保存membership信息在sql server,Active Directory以及其他的一些数据保存方法
     3.   鉴别谁在访问你的网站。如果使用login控件,几乎可以在不写代码的情况下完成。
     4.   管理密码。包括 创建 修改 重置
     5.   创建一个唯一的值来标志每一个登陆用户,可以实现对用户的个性化以及角色管理。
     6.   提供一个用户自定义的membership provider,从而实现一些自己网站特有的数据的保存和管理。
     让membership能工作要做的一些工作:
     1.   在web.config中填写一些membership的设置,在asp.net默认情况下membership是被允许使用的 而默认的数据保存是使用ms的sql server.你可以做些设置提供其他的数据保存方法 包括自定义的方法。这将在后面的文章中具体介绍
     2.   设置你的网站使用Forms验证方式,
     3.   为membership定义用户帐号。可以使用vs2005提供的web administrator tool进行设置,也可以自己制作create user页面进行,而自定义页面 只要调用membership.createuser就可以方便的创建用户。


     Membership的管理和配置:
在web.config中配置管理membership最简单的方法就是使用Web Site Administration Tool(在vs2005的websits菜单里)。你可以指定membership的提供者sql server还是其他,密码的管理 包括是否要加密保存 以及是否要给用户提供根据事先设置的问题 恢复密码的机制。当然是用web site administration tool可以直接创建和管理用户及角色。

     Membership的方便之处在于,当一个用户通过认证之后,他的信息的保存都是系统自动完成的 这样我以前最头痛的如何安全完整的在各个页面中传递登陆用户信息这点就迎刃而解了。
     如果使用vs2005自带的login控件 要清楚一件事 就是login控件的功能实现都是调用了membership的类函数,我们完全可以自己写出所有的控件。
     之后会具体介绍membership的使用。我的介绍也是对msdn的一些翻译和整理。

Membership学习(二)membership入门
--不写一行代码在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控件。
测试

这样整个例子完成 大家也可以看到 我们没有写一行代码。:)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值