当前位置:文档之家› 身份认证与权限管理

身份认证与权限管理

网站安全性―身份认证与权限管理1 简介 (3)2准备环境 (3)2.1准备数据库 (3)2.2修改提供程序 (3)2.3测试 (4)3成员资格管理类 (4)3.1M EMBERSHIP 类 (4)3.1.1方法 (6)3.1.2属性 (7)3.1.3事件 (8)3.2M EMBERSHIP U SER 类 (9)3.2.1构造函数 (9)3.2.2方法 (9)3.2.3属性 (10)3.3R OLES类 (11)3.3.1方法 (11)3.3.2属性 (12)3.4F ORMS A UTHENTICATION 类 (14)3.4.1构造函数 (15)3.4.2方法 (15)3.4.3属性 (16)4操作实例 (17)4.1搭建环境 (18)4.2配置工具 (18)4.3代码编程 (18)4.3.1创建用户 (18)4.3.2删除用户 (18)4.3.3创建角色 (18)4.3.4删除角色 (18)4.3.5将用户添加至角色 (18)4.3.6将用户从角色移除 (18)4.3.7为角色添加用户 (18)4.3.8判断用户是否属于角色 (18)4.3.9验证用户登录是否 (18)4.3.10修改用户密码 (18)4.4为用户和角色设置访问权限 (18)4.4.1配置站点地图提供程序 (18)4.4.2配置工具设置 (18)4.4.3配置文件设置 (18)4.5测试 (18)1简介采用.NET自带身份验证与权限管理机制实现网站的身份验证与权限管理,保证网站安全性。

采用成员和角色的概念来实现权限管理,结合站点地图,可实现对不同权限的用户显示不同的菜单,允许操作不同的功能。

2准备环境2.1准备数据库1)新建自定义数据库,如db_Net.mdf2)运行aspnet_regsql工具,位于C:\Windows\\Framework\v2.0.50727目录,将AspNetSqlProvider的数据库修改为用户自定义数据库db_Net.mdf2.2修改提供程序1)在配置文件web.config中定义数据库连接字符串:<connectionStrings><add name="NetCon"connectionString="Data Source=.;InitialCatalog=db_Net;Integrated Security=True;User Instance=false"providerName="System.Data.SqlClient"/></connectionStrings>2)添加Membership定义<!--设置Membership--><membership defaultProvider="myMembershipProvider"><providers><clear/><add name="myMembershipProvider"connectionStringName="NetCon" enablePasswordRetrieval="false"enablePasswordReset="true" requiresQuestionAndAnswer="false"applicationName="/" requiresUniqueEmail="true"passwordFormat="Hashed"maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6"minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10"passwordStrengthRegularExpression=""type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /></providers></membership>3)添加Roles定义<roleManager enabled="true" defaultProvider="myRoleManager"><providers><add name="myRoleManager"type="System.Web.Security.SqlRoleProvider" connectionStringName="NetCon" applicationName="/"/></providers></roleManager>4)添加SiteMapProvider定义<!--设置SiteMap provider--><siteMap defaultProvider="XmlSiteMapProvider" enabled="true"><providers><add name="XmlSiteMapProvider" siteMapFile="web.sitemap"type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true"/></providers></siteMap>5)设置Authentication Mode<authentication mode="Forms" />2.3测试1)连接数据库db_Net,查看数据库的表和视图2)在Visual Studio工具中,在“网站”菜单栏中选择“配置”进入配置程序3成员资格管理类3.1Membership 类验证用户凭据并管理用户设置。

无法继承此类。

静态类,使用时不需要实例化,与MembershipUser 类有区别。

命名空间: System.Web.Security在 应用程序中,Membership类用于验证用户凭据并管理用户设置(如密码和电子邮件地址)。

Membership类可以独自使用,或者与FormsAuthentication一起使用以创建一个完整的Web 应用程序或网站的用户身份验证系统。

Login控件封装了Membership类,从而提供一种便捷的用户验证机制。

Membership类提供的功能可用于:•创建新用户。

•将成员资格信息(用户名、密码、电子邮件地址及支持数据)存储在Microsoft SQL Server 或其他类似的数据存储区。

•对访问网站的用户进行身份验证。

可以以编程方式对用户进行身份验证,也可以使用Login控件创建一个只需很少代码或无需代码的完整的身份验证系统。

•管理密码,包括创建、更改、检索和重置密码等等。

可以选择配置 成员资格以要求一个密码提示问题及其答案来对忘记密码的用户的密码重置和检索请求进行身份验证。

虽然 成员资格是 中用来进行身份验证的独立功能,但它可以与 角色管理集成来为站点提供授权服务。

成员资格还可以与 用户的System.Web.Profile 集成,以提供可为各个用户量身订做的特定于应用程序的自定义实现。

有关详细信息,请参见了解角色管理和 配置文件属性概述。

Membership类依赖于成员资格提供程序与数据源通信。

.NET Framework 包括一个SqlMembershipProvider(将用户信息存储在Microsoft SQL Server 数据库中)。

还可以实现一个自定义成员资格提供程序与可由Membership类使用的其他类似的数据源进行通信。

自定义成员资格提供程序将继承MembershipProvider抽象类。

有关更多信息,请参见实现成员资格提供程序。

默认情况下, 成员资格可支持所有 应用程序。

默认成员资格提供程序为SqlMembershipProvider并在计算机配置中以名称AspNetSqlProvider指定。

SqlMembershipProvider的默认实例配置为连接到Microsoft SQL Server 的一个本地实例。

可以通过修改默认设置将一个非AspNetSqlProvider实例的SqlMembershipProvider指定为默认提供程序,或使用Web.config 文件将自定义提供程序的实例指定为 应用程序的默认提供程序。

可以使用Web.config 文件中membership 配置节来为Web 应用程序指定 成员资格配置。

可以使用membership 节的providers子节来指定默认提供程序之一以外的成员资格提供程序。

Membership类型公开了以下成员。

3.1.1方法名称说明CreateUser已重载。

将新用户添加到数据存储区。

CreateUser(String, String)将新用户添加到数据存储区。

CreateUser(String, String, String)将具有指定的电子邮件地址的新用户添加到数据存储区。

CreateUser(String, String, String, String, String, Boolean, MembershipCreateStatus)将具有指定属性值的新用户添加到数据存储区,并返回一个状态参数,指示该用户是否成功创建或用户创建失败的原因。

CreateUser(String, String, String, String, String, Boolean, Object, MembershipCreateStatus)将具有指定的属性值和唯一的标识符的新用户添加到数据存储区,并返回一个状态参数,指示该用户是否成功创建或用户创建失败的原因。

相关主题