【问题标题】:ASP MySQLRoleProvider tie roles to usersASP MySQLRoleProvider 将角色与用户联系起来
【发布时间】:2014-10-10 20:08:10
【问题描述】:

我想为 aspnet 使用 mysql 角色提供程序。我已经使用属性 userTableName="user" 为用户设置了一个自定义表。现在的问题是,当我将用户分配给角色时,MYSQLRolesprovider 在表“my_aspnet_usersinroles”和“my_aspnet_users”中创建一个条目。我想指定用于指定角色的表应该是“用户”表。我怎么做?我需要编写自定义角色提供程序吗?有没有我可以调整的设置来建立这种关联?还是我只是错误地使用了整个系统?谢谢

【问题讨论】:

    标签: mysql asp.net sqlmembershipprovider sqlroleprovider


    【解决方案1】:

    指定用于指定角色的表应该是“用户” 表。

    如果您希望 Membership Provider 使用您的 User 表,您需要实现 Custom Membership Provider

    自定义 Membership Provider 需要做很多工作,尤其是如果您是 Membership Provider 和 Provider Model 的新手。

    替代方法

    • 如果您不需要 Membership Provider 的所有功能,请使用 FormAuthentication

    • 在用户表中创建 UserId 作为 PrimaryKey 以及 ForeignKey,如下所示。 (这种方法的一个缺点是您只能在新应用程序中使用;您不能在现有数据库中实现。)

    【讨论】:

      【解决方案2】:

      您需要为用户及其角色提供单独的表格。一般一共三个,一个给用户,一个给角色,一个给一个用户绑定一个或多个角色。 usersinroles 表允许一对多关系,因此您的用户可以拥有多个角色。此外,良好的数据库设计会规定这一点,并且用户表应该只包含与用户本身直接相关的工件。

      【讨论】:

      • 谢谢@Mark。我有 3 张桌子。在将用户绑定到角色时,我只需要 asp 使用我的用户表(“user”,这是一个自定义表)而不是 my_aspnet_users
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多