专注

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Asp.Net 内置支持成员管理功能,利用这个,你可以非常安全的存储和验证用户信息。 特别当你将成员管理与角色和个性化管理结合在一起,你就能创建一个强大的应用系统。Asp.Net包含一系列类让你访问成员管理和角色相关的功能,你可以通过下面的的链接来了解这些类。

http://msdn.microsoft.com/en-us/library/91f66yxt.aspx

 

Asp.Net的成员管理功能可以将成员信息保存在 SQL Server 数据库中, 为了在一个项目中使用成员管理, 你必须在数据库中安装跟成员管理相关的表,视图和存储过程, 一旦安装成功,那么你就能通过代码来控制用户、角色和个性化设置。

 

在这篇文章中, 我打算为asp.net的成员管理创建一个数据库, 在做这个之前,必须先安装.net framwork和asp.net .

 

我们在SQL SERVER中先创建一个数据库“MembershipDB”:

image

这是个空的数据库,除了默认的系统表,什么都没有。

ASP.Net提供了一个有用的工具,“aspnet_regsql.exe”, 利用它可以帮助你创建成员管理相关的表,存储过程等。你可以在目录“<windowsDirectory>\Microsoft.Net\Framework\<version>\ ”下找到,如果你是默认安装在C盘,这个工具在.Net 4的路径是:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

 

 

打开命令行窗口,并将路径切换到上面提到的目录,输入aspnet_regsql in 。(你也可以打开VISUAL STUDION提供的COMMAND PROMPT工具)

 

这时候,会弹出SQL注册向导。

 

点击 next

 

确保数据库连接信息的准确性,现在,选择数据库“MembershipDB”

 

确认

 

点击 next

clip_image010_3F105A67.png (571×443)

 

点击结束,退出向导。

 

检查数据库, 你会看到,这个工具已经帮助我们创建了Membership表和存储过程等。

clip_image011_54AA9304.png (341×398)

这个向导工具非常易于使用,但它也有一些不足,比如,你不能单独选择某个特性,有时候,我只想使用成员管理和角色管理,但是你不能在这个向导里进行配置,正常情况下,管理员都倾向作用命令行,aspnet_regsql 也支持在命令行里执行,下面列出了aspnet_regsql 工具常用的参数信息:

Parameter Description
-E 用当前windows 用户凭证来验证
-S SQL Server 实例
-d 数据库名
-C 连接字符串,如果用这个参数,你就不需要单独指定数据器实例
-A all|m|r|p|c|w A代表增加,其它关键字可以组合使用,比如,如果你只想安装membership 和roles,使用-A mr

支持的选项:

all – 所有功能特性

m – Membership

r – roles

p – profiles

c- personalization

w – SQL web events

-R all|m|r|p|c|w 移动指定的功能特性
-? 列出工具支持的所有参数

 

看些例子

1. 从数据库中,移除所有的功能

命令: aspnet_regsql.exe -E -S sp2010_db -R all -d MembershipDB

clip_image013_04388BC4.jpg (624×234)

The command will ask you a confirmation, you need to enter y for confirming. If you check your database now, you will see the tables and stored procedures are removed from database.

系统会提示你确认,当你输入“y”确认,再检查数据库,这时个所有的表和存储过程都已经被删除

2.增加membership 和roles管理功能

aspnet_regsql.exe -E -S sp2010_db -A mr -d MembershipDB
clip_image015_741CBF68.jpg (624×158)

 

检查数据库,你会看到只有成员和角色相关的信息被生成。

3.列出所有可用的选项

aspnet_regsql.exe -?
clip_image017_71275AB5.jpg (624×263)

有点要注意的是:这些参数是大小敏感,aspnet_regsql.exe 是个很实用的工具,可以帮助开发人员快速创建表信息,正常情况下,开发者都需要在表中插入一些测试数据,有两种方式,可以让你增加新的用户和角色

1. ASP.Net Website Administration Tool

你可以在Visual Studio的项目中,启动这个管理工具,位于“project”菜单。

clip_image018_545DBFD3.png (414×480)

这个工具会使用machine.config里预先设置好的“LocalSQLServer”字符串来连接数据库,如果你打算用“ASP.Net configuration tool ”来连接你的数据库,必须在你的web.config 中重写“LocalSQLServer”,然后将数据库信息用你的替换。有点要注意,确保你使用了<clear/>或者<remove>来移除原先的定义,因为所有的配置信息都继承了machine.config,下面的连接字符串信息可以在 “ASP.Net configuration”中正常工作。

clip_image020_3F5C1793.jpg (643×80)

2. 使用SQL指定

你可以直接在SQL server 的IDE中直接运行SQL 命令来创建用户和角色:

--*****创建用户*****--

declare @now datetime
set @now= GETDATE()
exec aspnet_Membership_CreateUser 'FormAuthApplication','admin1','pass@word1', '','admin1@contoso.com','','',1,@now,@now,0,0,null

-- 执行上面的命令,会创建用户名为“admin1 ”,密码“pass@word1 ”,应用程序名称“FormAuthApplication”,理论上,你可以在同个数据库中创建任意多个应用程序,而且每个应用程序拥有其自己的用户群,你只需要在创建用户的时候,指定好它的应用程序名称。

--*****创建角色*****--
--Create Role
EXEC aspnet_Roles_CreateRole ' FormAuthApplication', 'Admin'
--为应用程序“FormAuthApplication”创建角色'Admin'

 

--*****将用户与角色关联*****--
EXEC aspnet_UsersInRoles_AddUsersToRoles ' FormAuthApplication', 'admin1', 'Admin', 8
--将用户与角色关联

创建基于应用程序的成员管理功能是非常简单的事情,当然你也可以将成员管理与“form ”认证机制一起使用,来创建基于用户的认证体系。

posted on 2012-03-29 11:11  中金黄金  阅读(2450)  评论(0编辑  收藏  举报