【问题标题】:Where are my Roles being stored?我的角色存储在哪里?
【发布时间】:2011-01-17 23:29:23
【问题描述】:

我在我的 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>

【问题讨论】:

  • @Skoder 你能显示你的 web.config 吗?

标签: asp.net sql-server-2005 roles roleprovider data-storage


【解决方案1】:

在您的 asp.net 成员数据库中有两个表:aspnet_Roles 包含角色,aspnet_UsersInRoles 包含用户与角色的关联。

【讨论】:

  • 这是我的预期,但里面什么都没有。
  • 您是否执行了 aspnet_reqsql 实用程序并选择了要生成的角色表?
【解决方案2】:

它将在 App_Data 文件夹中构建它的 OWN 数据库并在那里创建所需的表

【讨论】:

  • 我的 App_Data 文件夹中没有任何内容。我更新了我的标签以显示我正在使用 SQL Server 2005(忘记放入)
  • 运行这个 aspnet_regsql 直到你会发现它创建了一个名为 aspnetdb 的数据库
  • 嗨,我已经有了 asp 会员表。我创建的用户出现在表格中,我可以访问它们。我也可以访问这些角色,但它们没有显示在表格中。
  • 你说你已经有会员表,然后你说他们没有显示在表中,不能得到它?
【解决方案3】:

默认情况下,它确实使用本地数据库,除非角色提供程序指向使用不同数据库连接的数据库。

如果您在自己的自定义数据库中而不是在 ASPNETDB.mdf 文件中设置表,则必须设置指向 SQLroleprovider 的自定义提供程序定义,并提供对数据库所在位置的自定义连接字符串引用。

HTH。

【讨论】:

  • 啊,整理好了。我在 roleManager 部分添加了提供者详细信息。奇怪的是它并没有像我之前的项目那样自动出现,我没有明确添加任何东西,但它是默认设置。哦,好的,谢谢你的帮助!
猜你喜欢
  • 2023-04-04
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多