【asp源码栏目提醒】:网学会员在asp源码频道为大家收集整理了“第11章_asp net_成员资格与角色管理 - 编程语言“提供大家参考,希望对大家有所帮助!
1111北京理工大学计算机学院金旭亮
ASP.NET程序设计教程主要内容11.1 Web用户与权限管理概述11.2 使用
ASP.NET网站管理工具11.3 使用登录控件11.4 自定义成员资格与角色管理11.1 Web用户与权限管理概述Web用户权限管理Web用户权限管理简单地说要解决两个任务1.身份验证authentication即确定访问网站的用户身份解决“用户是谁”的问题2.使用权限authorization即在用户身份确定之后授予他一定的权限允许他使用特定的服务这是解决“用户能干什么”的问题。
ASP.NET身份验证方式
ASP.NET应用程序可以使用以下四种身份验证方式身份验证方式说明None不进行身份验证Web站点向所有人开放Windows基于Windows身份验证使用用户登录Windows的账户作为Web站点的用户。
由于用户在访问网站前已经登录了Windows所以他访问网站时不再需要输入用户名与密码。
Forms由
ASP.NET负责进行身份验证即网站提供一个登录页面要求用户输入用户名与密码验证合法之后才可以访问网站。
Passport使用微软提供的PassportSDK通过第三方进行身份验证。
在实际的Web项目多采用Forms身份验证。
理解
ASP.NET身份验证1Demo: UnderStandAuthentication默认情况下web.config中有以下设置说明此
ASP.NET网站使用Windows身份验证。
理解
ASP.NET身份验证2修改web.config如下 设定网站使用特定的成员资格提供程序 使用指定的连接字串移除默认的提供程序使用新的提供程序配置角色管理提供程序在Web.Config中添加以下设置参数注意上面的type元素其值是从“machine.config”文件中获取的。
问题2解决方案所有的成员资格用户信息都有一个标识这个用户标识是一个GUID字串不可能重复。
利用此标识根据实际情况可以在数据库中另外创建一个自定义用户表以保存一些扩充信息这个表与成员资格的用户表之间使用此用户标识进行关联。
因此既可以利用
ASP.NET现有的成员资格组件以减少开发工作量同时又能兼顾实际需要。
MembershipUser user Membership.GetUsersaifusernullResponse.Writeuser.ProviderUserKey我的数据不放在我的数据不放在SQL ServerSQL Server中因中因此不能用此不能用aspnet_regsql.exeaspnet_regsql.exe工具工具问题3分析问题看一下
ASP.NET成员资格的系统架构分层的架构每一层都可以被独立地替换掉技术解决方案自定义一个成员资格提供程序派生自抽象类MemberShipProvider实现其中所有的抽象方法。
自定义一个角色管理提供程序派生自抽象类RoleProvider实现其中所有的抽象方法。
修改网站的web.config使用新开发的提供程序替换掉默认的SqlMemberShipProvider和AspNetSql-RoleProvider即可。
详情可查询MSDN。