您的位置:首页 > 编程语言 > ASP

ASP.NET成员角色系列(二)--今天你"建模"了吗?

2008-09-21 23:53 211 查看
关于成员角色的数据提供模型打算按下面的顺序进行讲述:

1. 给成员关系提供数据的模型

2. 给角色管理提供数据的模型

3. 深层探讨给成员关系和角色管理提供数据的模型: ASP.NETDB.MDF数据库.

4. 工具 aspnet_regsql.exe 的使用方法.

OK, 这里就从成员关系提供模型开始:

1. 成员关系提供模型 ( SqlMembershipProvider ).

在 ASP.NET 2.0 使用的成员关系中, 默认使用ASPNET.MD数据库来存放"成员-角色"关系,为了建立该数据库可以有两种方法.

方法一: 使用VS2005中自带的网站管理工具(Website Administration Tool): 可从解决方案中单击 ASP.NET Configuration 按钮直接启动该工具;还可通过从VS2005菜单选择Website命令, 然后单击 ASP.NET Configuration 启动该工具. (注, 建议使用这个工具前先弄明白其中的原理, 这里不再详细介绍该工具的使用, 请参考相关资料 ).

方法二: 使用数据库注册工具 (SQL Server Registration Tool aspnet regsql.exe): 使用该工具也可以在 SQL Server 2000/2005中建立数据结构模式. 使用方法将在后面讲到.

在使用第一种(网站管理)工具时, 当选择类似"选择验证模式"或"安全配置向导"时, 系统会自动在 App_Data 目录下建立aspnetdb.mdf 数据库.

而如果想将 "成员-角色"关系存放到其他数据库里, 例如存放在 SQL Server 2000中, 就需要利用 aspnet_regsql.exe工具来完成这个功能.

在使用这两种工具时请注意其差别: 当使用管理员工具时, 如果选择身份证模式为 From the internet, 系统会自动在 web.config 里添加如下代码:

<authentication mode="Forms" />

如果使用数据库注册工具 (aspnet_regsql.exe), 需要手动在 web.config里添加上述代码, 另外还需要理发数据库的连接方式.

SqlMembershipProvider 使用两张表来存储用户相关的信息.

(1). Aspnet_Users 表: 每一个注册的用户的基本资料都会存储在该表里.其中 UserID 列是每一个用户的身份表示, 它使用 GUID 确保用户ID的惟一.

(2). Aspnet_membership表: 它使用 UserID 来连接aspnet_Users 里的用户记录. Aspnet_Membership 表存储和用户相关的信息, 使用 Email, Password, question, answer等等.

SqlMembershipProvider模型存储位置在 Microsoft.NET\Framework\v2.0.50727\CONFIG目录下的 machine.config文件中 (其实后面将要讲到的所有模型定义都在此文件中).

默认的SqlMembershipProvider模型代码如下:

默认的角色管理配置代码
<roleManager>

<providers>

<add name="AspNetSqlRoleProvider"

connectionStringName="LocalSqlServer"

applicationName="/"

type="System.Web.Security.SqlRoleProvider,

System.Web, Version=2.0.0.0,

Culture=neutral,

PublicKeyToken=b03f5f7f11d50a3a" />

<add name="AspNetWindowsTokenRoleProvider"

applicationName="/"

type="System.Web.Security.WindowsTokenRoleProvider,

System.Web, Version=2.0.0.0,

Culture=neutral,

PublicKeyToken=b03f5f7f11d50a3a" />

</providers>

</roleManager>



3. 深层探讨给成员关系和角色管理提供数据的模型: ASP.NETDB.MDF数据库.

默认情况下, ASP.NET提供的成员和角色是 SqlMembershipProvider 和 SqlRoleProvider 模型. 相应 的使用基于 SQL Server 2005服务器的 ASP.NETDB.MDF 数据库存储成员角色的数据.

具体地说, 这些数据分别存放在预定义的表格里, 并通过预定义的存储过程执行方法. 为了在应用程序里使用默认的 membership和 role 关系, 需要在自己的应用程序里定义该预定义的表和存储过程, 只有这样才能够使用 SqlMembershipProvider 和 SqlRoleProvider 模型类的属性和方法.

如果还没有数据库, ASP.NET 将在应用程序的 App_Data 目录下建立 ASPNETDB.MDF 数据库, 不过这种方法缺乏灵活性, 通常开发人员面对的情况是我们需要将 ASP.NET2.0成员和角色关系加入到自己已有的数据库里, 即我们为应用程序设计的数据库里.

这样一来, 我们的应用程序将同时拥有两个数据库--ASNETDB.MDF和我们自己已经建立的数据库. 这显然对于维护和发布应用程序都是不便的, 一个较为理想的方法是将两个数据库整合到一个数据库.

例如我们可能已经建立了一个应用程序, 但该应用程序并没有成员和角色管理, 可是最近由于一些需要, 站点的某些内容要求只有特定的用户才能够访问, 或者一些内容被限制在具有某种角色的用户才能够访问, 这样不管在哪种情况下, 都需要在现有的数据库里添加相应的成员角色结构. 如果我们想保留ASP.NET2.0的成员和角色管理功能, 则我们的应用程序将使用两个数据库, 这为数据库维护带来很多不便. 因此数据库合并是必要的也是必须的.

那么怎样样才能够合并两个数据库呢? 即如何才能将一个数据库中的某些表结构导入到另一个数据库中呢? 这里我们的 aspnet_regsql.exe 工具该出场了.

4.工具 aspnet_regsql.exe 的使用方法.

利用 ASP.NET Server 的注册工具 ( aspnet_regsql.exe )将应用程序角色关系添加到现有的数据库是一个很简单的工作. 该工具位于 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 ( 系统盘 )

中. 然后运行 aspnet_regsql.exe; 此时将出现 ASP.NET Server 的安装向导. 从该向导里我们可以为我们的应用程序配置数据结构, 或者从数据库里删除该成员结构. 按着安装向导操作过程非常简单, 此处不再啰嗦。

另外, 此工具的功能远远不致这一项, 比如它可能设置几种类型的选项, 如指定 SQL 连接, 指定使用 SQL Server 来管理信息的 ASP.NET 应用程序服务, 批示将哪个数据库或表用于SQL 缓存依赖项, 以及添加或移除对使用 SQL Server 来存储和会话状态的支持.

.....................

希望这些对大家更深入的认识 ASP.NET 成员角色有所帮助.

下一讲述主要会结合登录控件组详细介绍ASP.NET中成员角色的应用. 希望大家关注.

不行了. 睡觉了 ZZZzzzzzzzzzzzzzzzzz~~~~~~~~~~~~~~~~~~~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: