[ASP.NET 2.0 Security FAQs]目錄
原文連結
翻譯:2005-12-10 by Jackei Lin
ASP.NET 2.0 中的Membership, Profiles 和Role需要把相關資訊儲存到資料來源中. 這幾項特性的預設的provider分別是 SqlMembershipProvider, SqlProfileProvider 和 SqlRoleProvider.
如果你沒有配置使用特別的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