2010-02-17 96 views
2

我在我的ASP.NET Web應用程序中啓用了Roles,但我對它們的存儲位置略有困惑。在我的舊項目中,每個角色都會出現在ASP.NET角色表中,我可以看到他們。但是,在我的新項目中,我看不到數據庫表中的任何角色。奇怪的是,我仍然可以使用它們(以及默認的Roles/Membership API)並且一切正常。任何想法爲什麼他們沒有出現數據庫表本身,以及它們實際存儲的位置?我的角色在哪裏存儲?

web.config文件中有這樣的:

<roleManager enabled="true" /> 

使用ASP.NET配置工具,我的默認角色提供程序是AspNetSqlRoleProvider

感謝 更新 我在web.confg明確添加此

<roleManager enabled="true" > 

     <providers> 
     <clear/> 
     <add connectionStringName="myDBConnectionString" name="AspNetSqlRoleProvider"/> 
     </providers> 
    </roleManager> 
+0

@Skoder可以顯示你的web.config嗎? – Adeel 2010-02-17 17:37:25

回答

2

默認情況下,它使用本地數據庫,除非角色提供點使用不同的數據庫連接的數據庫。

如果您在自己的自定義數據庫而不是ASPNETDB.mdf文件中設置表,則必須設置指向SQLrole提供程序的自定義提供程序定義,併爲數據庫的位置提供自定義連接字符串引用。

HTH。

+1

啊,這是整理它。我在roleManager部分添加了提供者詳細信息。奇怪它沒有自動出現在我以前的項目中,我沒有明確添加任何內容,但它是默認的。 噢,謝謝你的幫助! – Skoder 2010-02-17 18:36:21

0

在你的asp.net成員數據庫有兩個表:aspnet_Roles包含了角色和aspnet_UsersInRoles包含用戶與角色的關係。

+0

這就是我的預期,但沒有任何內容。 – Skoder 2010-02-17 17:26:15

+0

您是否執行了aspnet_reqsql實用程序並選擇了用於生成的角色表? – Residuum 2010-02-17 17:45:28

0

將建立它自己的數據庫在App_Data文件夾並創建所需的表有

+0

我的App_Data文件夾中沒有任何內容。我更新了我的標籤以顯示我正在使用SQL Server 2005(忘記放入) – Skoder 2010-02-17 17:26:39

+0

運行此aspnet_regsql直到您會發現它創建了一個名爲aspnetdb的數據庫 – 2010-02-17 17:31:05

+0

嗨,我已經有了asp會員表。我創建的用戶出現在表格中,我可以訪問它們。我也可以訪問角色,但他們沒有顯示在表格中。 – Skoder 2010-02-17 17:37:17