(搬运).net起步(通过Membership和MembershipUser创建用户管理系统)

实验目的:

当创建一个多用户站点时,我们经常需要对用户进行管理。本实验将使用 Membership 和MembershipUser 类创建一个简单的用户管理系统,此系统主要实现用户注册,用户登录,更改密码,创建删除角色功能。(以下所有用到是 的登录控件均为普通标准控件,不是 Login系列控件。 )

实验准备:

1.创建新项目,在该项目下建立一个文件夹“admin ”,在该文件夹下建立一个页面“admin.aspx ”,页面上添加一行文字“我是后台管理页面”。 运行 浏览 查看 是否 可以 正常 看到 该 页面。

2.  再新建一个 memberPages  文件夹,然后在此文件夹下建立一个 Member.aspx  页面,该页面内容如下图所示:


3.  打开 asp.net  网站配置工具,启用角色功能。并创建一个角色“admin ”。


4.  然后为该角色创建一个访问规则。



该规则的意思是属于角色 admin 的用户允许访问 admin 文件夹。
点击“确定”按钮保存该规则。
再为 admin 文件夹添加一个规则,如下所示:


该规则的意思是匿名用户不允许访问 admin 文件夹。
点击“确定”按钮保存该规则。

5.  为 memberPage 文件夹创建一个新规则,拒绝匿名用户访问。


点击“确定”按钮保存该规则。
创建规则后,会在创建了规则的文件夹下生成一个 web.config 文件,记录当前文件夹的访问规则,此时的目录结构变为下图所示:


具体步骤如下:

1. 实现用户注册功能。

首先添加命名空间 using System.Web.Security;

1) 添加 AddUser.aspx 页面,实现新用户注册功能,页面效果如下图:


2) 在“AddUser.aspx”页面的“添加用户”按钮的 Click 事件中输入验证添加用户是否成功的代码:


PS:
MembershipCreateStatus 枚举:
描述 CreateUser 操作的结果,MembershipCreateStatus 枚举指示尝试创建新用户成功与否。 如果 CreateUser 操作将失败,MembershipCreateStatus 枚举描述失败的原因。

Membership 类:
Membership 类用于 ASP.NET 应用程序中验证用户凭据并管理用户设置,如密码和电子邮件地址。 Membership 类可在其自身的、 或中结合 FormsAuthentication 若要创建一个完整的系统的 Web 应用程序或网站的用户进行身份验证。 Login 控件封装 Membership 类以提供一个用于验证用户方便机制。
Membership.CreateUser 方法:
CreateUser 将新用户添加到数据存储区,并返回 MembershipUser 新创建的用户的对象。 如果用户创建失败, MembershipCreateUserException 引发。 您可以检索 MembershipCreateStatus 值从 StatusCode 属性 MembershipCreateUserException ,该值指示用户创建失败的原因。

3) 运行浏览“AddUser.aspx”页面,创建一个新用户,用户详细信息如下:
用户名:zhangsan
密码:@zhangsan
邮箱:zhangsan@163.com
密码问题:我弟弟的生日
密码答案:20001212
点击“添加用户”按钮,页面显示添加用户成功。
打开 Asp.net 网站管理工具,我们看到刚才添加的用户已经存在。添加用户成功。
注意:如果打开网站管理工具后显示错误或不能创建用户,请查看您的文件夹是否为只读,如为只读,把此站点文件设为可读写的,并在此文件夹属性的安全选项卡下把名为 ASPNET 的用户添加进来,并设置此用户的权限为完全控制。

2. 实现用户登录功能

1) 添加“Login.aspx”页面,实现登录功能和角色添加移除功能,页面效果如下图所示:
2) 此时我们先直接运行浏览“memberPage/member.aspx”页面,无法查看到该页面,会跳转到“Login.aspx”页面让你登录,因为该文件夹只允许验证用户查看,匿名用户无法查看。
3) 在该页面的“登陆”按钮的 Click 事件中输入验证登陆代码:

4) 新添加一个“LoginSuccess.aspx”页面登录成功页面,如下图所示:

“点击此处修改密码”链接到“ChangePassword.aspx”页面。
“连接到 member 页面”链接到“memberPages/Member.aspx”页面。
“admin”链接到“admin/admin.aspx”页面。
5) 浏览“Login.aspx”页面,先输入一个不存在的用户,用户不能登陆成功。再输入我们创建的用户点击“登陆”,验证通过,转到“LoginSuccess.aspx”页面。此时我们再点击“LoginSuccess.aspx”上的“连接到 member 页面”链接,就会看到 member.aspx页面的内容了。此时已经是验证用户了。
6) 在该页面“添加用户”按钮的 Click 事件中输入代码,实现跳转到“AddUser.aspx”页面。

7) 尝试五次输入密码失败,然后再输入正确的密码,看看页面会出现什么情况。是不是即使输入密码正确也无法登录成功了?因为我们的账户已经被锁定了,此时需要解锁当前用户。
8) 在“解锁用户”按钮的 Click 事件中输入代码:

PS:
MembershipUser 类:
MembershipUser 对象用于表示成员资格数据存储区中的单个成员资格用户。该对象公开有关成员资格用户的信息(如电子邮件地址),并为成员资格用户提供功能(如更改或重置其密码的功能)。
MembershipUser 对象可由 GetUser 和 CreateUser 方法返回,或是作为 GetAllUsers、FindUsersByName 和 FindUsersByEmail 方法返回的 MembershipUserCollection 的一部分返回。
当要更新现有成员资格用户的信息时,UpdateUser 方法需要 MembershipUser 对象。

9) 直接运行浏览“admin/admin.aspx”页面,无法查看到该页面,会跳转到“Login.aspx”页面让你登录,因为该文件夹只允许角色属于 admin 的用户查看。
10) 在“添加到角色”按钮的 Click 事件中输入代码:


PS:
Roles 类:
ASP.NET 角色管理使您能够管理应用程序基于组的用户,称为角色的授权。 通过将用户分配给角色,可以控制对不同的部分或功能的基于角色而不是,或者除,Web 应用程序访问指定基于用户名的授权。 例如,某个员工应用程序可能具有如经理、 雇员、 控制器和等等,角色为每个角色都指定了不同的权限。
用户可以属于多个角色。 例如,如果您的网站是一个论坛,某些用户可能会在成员和审查方的角色中。 您可以定义每个角色可以在站点上,具有不同权限,在这两种角色的用户就两组特权。
若要启用 ASP.NET 应用程序的角色管理,使用的元素 system.web 部分在您的应用程序的 Web.config 文件中,如下面的示例中所示。

Web 应用程序配置文件中或以编程方式在代码中,您可以指定授权规则。 例如,Web.config 文件中的以下节,要求用户登录 (通过拒绝匿名用户),并且然后仅允许用户具有访问权限的管理员角色中。

如果您使用 authorization 中应用程序的 Web.config 文件以指定基于应用程序的用户角色的授权部分必须提供身份验证的用户标识。 可以通过使用 Windows 或 Forms 身份验证来验证用户。 匿名用户不能向角色分配。 独立的或与 ASP.NET 结合使用,可以使用角色 Membership 类。
若要以编程方式验证角色成员身份,您可以使用 Roles 类或 Page.User 属性与 IsUserInRole 方法,也可以使用 Page.User 属性与 IPrincipal.IsInRole 方法。 有关示例代码中以编程方式检查角色成员资格,请参阅本主题中的示例部分。
Roles 类还使您可以创建和删除角色以及将用户添加到或从角色中删除用户。


Roles类


11) 在“从角色移除”按钮的 Click 事件中输入代码:


12) 重新运行浏览“Login.aspx”页面,输入刚才注册的用户名后,点击“添加到角色”按钮后,再次输入用户名,密码后,点击“登录”按钮,登录成功后跳转到“LoginSucess.aspx”页面,点击该页面上的链接“admin”,此时我们就可以打开“admin.aspx”页面进行查看了。因为当前用户属于“admin”角色”。

3.实现更改用户密码功能

1) 添加“ChangePassword.aspx”页面,实现更改登录用户密码功能,效果如下图所示:

2) 在“ChangePassword.aspx”页面的“更改密码”按钮的 Click 事件中输入更改登陆用户密码的代码:

PS:
HttpContext 类:
封装有关个别 HTTP 请求的所有 HTTP 特定的信息。
3) 浏览运行“Login.aspx”页面,使用用户 zhangsan 登录成功后跳转到 LoginSuccess.aspx 页面,点击修改密码链接后,把已创建用户 zhangsan 的密码更改为“P@ssw0rd1”。用新密码重新登陆,页面验证通过。修改密码成功。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值