2010-02-17 89 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