为ASP.NET下的Membership, Role和Profile创建数据库表

发布时间: 2014/1/23 15:33:25

简介

这篇文章是关于如何在MS SQL Server数据库中创建必要的表,来实现建立在成员与ASP.NET的身份验证和授权角色管理的方法。
本教程介绍了以下主题:

  1. 介绍成员,角色和属性

  2. aspnet_regsql.exe 工具的简介

  3. 使用 aspnet_regsql.exe 为Membership, Role和Profile创建表

  4. 对刚刚创建的表的说明

Part-1: 介绍成员,角色和属性

简而言之,成员是ASP.NET集成的内部组件。它被用作验证和提供用户接入和存储用户认证信息。同时,角色管理被用来提供网站的授权。用户属性被用来提供程序具体化。它为每一个单独的用户生成量身定制的应用程序。

Part-2: aspnet_regsql.exe 工具的简介

ASP.NET包含一个叫做aspnet_regsql.exe的工具。该工具可以为成员,角色和属性管理向SQL Server中创建数据表。你可以在本地
C:\WINDOWS\Microsoft.NET\Framework\<versionNumber>获取到该工具。
在命令提示符窗体中使用恰当的参数来使用这个工具,你可以做到在本地为成员和角色管理创建必要的SQL Server数据库中的表。
aspnet_regsql.exe工具所支持的命令和参数如下表所示:

参数

描述

-?

在命令提示符窗口打印aspnet_regsql.exe工具的帮助文档.

-W

以向导模式运行该工具。如果没有特殊指令,以该方式默认执行。

-C ( connection string)


链接数据库将被建立或已建立数据库的运行SQL Server服务的目标计算机连接字符串。除非你指定服务和登录信息,否则该命令无效。

-S  (server)


将要嵌入或已经嵌入数据库,且运行SQL Server的计算机名称。服务器名称可以被包含在一个实例名称中,比如:.\INSTANCENAME

-U ( login id)


SQL Server的登录名称。这个命令也需要和密码命令(-P) 一起使用。如果你没有获取windows信任权限的话,该命令无效。

-P ( password)


登录SQL Server的密码。这个选项需要和登录账号(-U)命令一起使用。如果你没有获取windows信任权限的话,该命令无效。

-E

使当前登录用户获得windows的信任。

-d ( database)


创建或者更新的数据库名称。如果数据库不是指定的,那么默认操作的数据库将是"aspnetdb"。

-s (qlexportonly filename)


生成SQL脚本文件,以便添加或移除指定特性。指定的行为将不被展示出来。

-A all|m|r|p|c|w

添加一个或多个特性。

-R all|m|r|p|c|w

移除一个或多个特性。

-Q

在安静模式下运行该工具,且移除一个特性前不会有确认消息弹出。

获取详细信息,请单击这里.

Part-3: 使用 aspnet_regsql.exe 为Membership, Role和Profile创建表

使用aspnet_regsql.exe为成员和角色创建基本表的过程如下:

  1. 首先,用SQL Server Management Studio在你的机器上创建一个SQL Server数据库。

  2. 打开命令提示符窗口,输入命令来转到C:\Windows\Microsoft.NET\Framework\v4.0.30319。

  3. 输入命令 aspnet_regsql.exe -S Home -U sa -P 123 -d Membership -A all 并运行该命令。这个命令将像下面展示的那样,为成员,角色和属性创建基本表:

Part-4: 对刚刚创建的表的说明

对新创建的表的描述如下:


Table

Description

aspnet_Applications

Keep   an Application ID with a default name for your site.

aspnet_Users

Store   the information of User

aspnet_Membership

Store   User’s extended information

aspnet_Roles

Keep   the information of Role List.

aspnet_UsersInRoles

This   table is used to maintain the Many to Many relationship between aspnet_Users   and aspnet_Roles

aspnet_Profile

Keep   the user profile information.

表间的关系图如下:

结论

这就是所有关于利用toolaspnet_regsql.exe工具来为微软内置成员和角色创建数据表的实现步骤。微软内置成员和角色是对身份验证和授权来说是强属性。并且它们更易于使用和节省时间。


赞助商