[ASP.NET 2.0 Security FAQs]如何设置SQL Server或SQL Express数据库,使其支持Membership、Profiles和Role
ASP.NET 2.0 中的Membership, Profiles 和Role需要把相关信息存储到数据源中. 这几项特性的默认的provider分别是 SqlMembershipProvider, SqlProfileProvider 和 SqlRoleProvider.
译者注:aspnet_regsql.exe位于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 目录下,它还可以用来配置数据库以用于存储session。
其他相关资料:
Configuring ASP.NET 2.0 Application Services to use SQL Server 2000 or SQL Server 2005 by Scott Guthrie
中文:将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005
如果你没有配置使用特别的provider, 你的程序就会使用以上默认的provider. 当你的程序第一次调用某个默认的provider时, ASP.NET会自动在App_Data 目录下新建一个SQL Express database用于存储所需的信息.
如果你想使用特定的SQL Server或SQL Express database server, 你必须配置你的程序以提供provider 所需的调用特定数据库的信息. 除此之外你必须配置相关的数据库.
使用Aspnet_regsql.exe来创建或配置特定的数据库.例如, 在命令行工具(cmd)里执行如下的指令:
aspnet_regsql -S (local) -E -A mpr
-S 指派特定的数据库服务器, 在这个例子里是(local).
-E 使用Windows信任连接连接相关SQL Server服务器.
-A mpr 添加相关支持,为:m: membership,p: profiles, r: roles.
执行Aspnet_regsql /?,你可以得到所有相关命令的列表.
用Aspnet_regsql 配置成功的aspnetdb(或其他)数据库是使用数据库角色(database roles)来控制书库访问的. 你必须让运行ASP.NET 程序的帐号能够访问aspnetdb数据库,这样你的程序才能使用数据库中的相关信息. 例如, 在SQL Query Analyzer里执行以下语句,使Network Service帐号能够造作相关的数据:
--为Network Service帐号创建一个SQL Server登陆 sp_grantlogin 'NT AUTHORITY\Network Service'
--允许帐号访问membership数据库 USE aspnetdb GO sp_grantdbaccess 'NT AUTHORITY\Network Service', 'Network Service'
--把用户添加到数据角色 USE aspnetdb GO sp_addrolemember 'aspnet_Membership_FullAccess', 'Network Service'
译者注:aspnet_regsql.exe位于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 目录下,它还可以用来配置数据库以用于存储session。
其他相关资料:
Configuring ASP.NET 2.0 Application Services to use SQL Server 2000 or SQL Server 2005 by Scott Guthrie
中文:将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005