在asp.net中,微软给了一套用户验证,权限,角色的控件和API,接下来的几往篇文单谈一下自己的浅薄认识。
引入数据库
把用户管理的数据库引入到自己的项目中,在装完Freamework2.0后,有如下文件,C:"windows"microsoft.NET"Framework"v2.0.50727"aspnet_regsql.exe(这是默认的安装目录),这个文件是用来向用户的数据库添加用户管理的数据库表的。安装界面如下:
(一)
(二)
(三)
(四)
(五)
其中的第三步,用户可以选择自己的数据库把用户管理的数据表加载到自己的数据库中。
此时如果用用户登录控件做用户的操作时,用户的信息还是添加不到自己的数据中的,因为系统默认的用户数据库是一个位于本项目App_Data文件夹下的一个文件性SQL数据库,为了登录控件中用户管理的一些类能操作自己的数据库中的用户管理表,则需在配置文件作一下配置的修改,即在web.config中作修改
修改如下:
在web.config的<system.web>中添加下列代码
1<!--添加成员管理-->
2 <membershipdefaultProvider="SqlProvider"userIsOnlineTimeWindow="20">
3 <providers>
4 <addconnectionStringName="ConString"enablePasswordRetrieval="false"
5 enablePasswordReset="true"requiresQuestionAndAnswer="true"
6 passwordFormat="Hashed"applicationName="/"name="SqlProvider"
7 type="system.Web.Security.SqlMembershipProvider"/>
8 </providers>
9 </membership>
10 <!--添加角色管理-->
11 <roleManagerdefaultProvider="SqlProvider"
12 enabled="true"cacheRolesInCookie="true" cookieName=".ASPROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="true" cookieSlidingExpiration="true" cookieProtection="All">
13 <providers>
14 <addname="SqlProvider"type="system.Web.Security.SqlRoleProvider" connectionStringName="ConString" applicationName="SampleApplication"/>
15 </providers>
16 </roleManager>
17<!--配置连接字符串-->
18<connectionStrings>
19 <addname="ConString"connectionString="DataSource=.;InitialCatalog=UserManage;IntegratedSecurity=True" providerName="system.Data.SqlClient"/>
20</connectionStrings>
本配置的意思是重新建立一个连接字符串,把用户管理和角色管理都指向这个连接字符串,也就是系统中有关用户角色类操作数据库时都依赖这个连接来完成。
成员管理和角色管理的配置中都有一个<providers>的标签,该标签的主要作用是配置成员类和角色类的一些属性,比如成员配置中<add connectionStringName="ConString" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="true"
passwordFormat="Hashed" applicationName="/" name="SqlProvider"
type="system.Web.Security.SqlMembershipProvider" />
首先是个连接,指向ConString,密码回复功能,密码重设功能,是否要问题回答,密码的格式,应用程序的路径,本Provider的名称,以及本Provider的类型。
至此,我们就完成了把微软的用户管理的表导入自己的数据库,并且作了连接字符串的配置,如果我们现在操作成员类或角色类,成员和角色的变动就会在自己的数据表中得到休现