Roles.AddUserToRole在给定相同用户名的情况下找到不同的userId

西蒙

我正在使用seed方法创建一些数据。我正在创建一些具有一些权限的用户(角色)

WebSecurity.InitializeDatabaseConnection("MibContext", "UserProfile", "UserId", "UserName", autoCreateTables: true);
Roles.CreateRole(Constants.Roles.Administrator);
Roles.CreateRole(Constants.Roles.ContentManager);
Roles.CreateRole(Constants.Roles.KeyAccountManager);

然后,我为用户名设置了变量(以避免任何输入错误)

var adminusername = "[email protected]";
var userusername = "[email protected]";

我通过EF和UnitOfWork模式创建Userprofile记录

var admin = new UserProfile
        {
            FirstName = "Admin",
            LastName = "Account",
            UserName = adminusername
        };
unitOfWork.UserRepository.Insert(admin);
unitOfWork.Save();

然后创建用户成员资格帐户,并分配角色:

WebSecurity.CreateAccount(adminusername, "123456");
WebSecurity.CreateAccount(userusername, "123456");

Roles.AddUserToRole(userusername, Constants.Roles.Administrator);
Roles.AddUserToRole(userusername, Constants.Roles.KeyAccountManager);

最后一个角色命令导致错误,UsersInRoles和UserProfile之间的外键冲突。这很奇怪,因为它可以将角色映射到第一个用户(这是管理员用户第一次,但想查看它是否可以为此用户创建权限)

然后,我删除了外键约束以查看发生了什么,然后在其中放置了3。通过重复但添加第四个角色进行测试,似乎(用户名,角色)参数是错误的方法!新角色的Id = 4,并且在重复测试时,将其放在UserId列中。

RoleId  UserId
2        1
2        4
NULL     NULL

角色已配置:

<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
  <providers>
    <clear/>
    <add name="SimpleRoleProvider" 
         type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
  </providers>
</roleManager>

我想念什么吗?

西蒙

webpages_UsersInRole表中字段的顺序显然非常重要。

我查看了映射以查看其中的内容,并且在ROLES表端定义了该关系(很多->很多)。我将映射交换到“用户”端,它现在可以正常工作。这是我在UserProfile对象上使用的映射。

 // Relationships
        this.HasMany(t => t.webpages_Roles)
            .WithMany(t => t.UserProfiles)
            .Map(m =>
            {
                m.ToTable("webpages_UsersInRoles");
                m.MapRightKey("RoleId");
                m.MapLeftKey("UserId");
            });

实际上,角色提供者不应假定列的顺序,而应指定其名称。至少我仍然可以通过这种方式修改映射来使用默认功能。这是相当差的SQL:

INSERT INTO webpages_UsersInRoles VALUES (4,1); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在给定多个用户名的情况下查询Active Directory?

来自分类Dev

在给定正确的用户名和密码的情况下XDM循环

来自分类Dev

在给定相同输入的情况下,为什么scikit-learn中的SVC上的GridSearchCV会产生不同的概率?

来自分类Dev

在给定相同输入的情况下,为什么scikit-learn中的SVC上的GridSearchCV会产生不同的概率?

来自分类Dev

Spring Security / Spring Boot-如何为用户设置ROLES

来自分类Dev

“用户”对象没有属性“ add_roles”

来自分类Dev

在没有 Instagram api 的情况下通过 userid 检索用户名

来自分类Dev

Configure Ansible roles with dependent roles

来自分类Dev

获取用户名不同的情况下的用户总数

来自分类Dev

如何在知道损坏的文件系统上的用户名的情况下找到密码

来自分类Dev

如何为不同组织中的不同用户使用相同的用户名?

来自分类Dev

在给定相同输入的情况下,某些代码如何可能仅因为它处于循环中而花费更多时间来运行?

来自分类Dev

在给定相同的 SECRET 密钥的情况下,nodejs 服务器无法读取由 asp.net 服务器生成的 JWT 令牌

来自分类Dev

使用wicket-auth-roles在过期的会话上向用户显示消息

来自分类Dev

Flask用户@login_required和@roles_required无法正常工作

来自分类Dev

SQL permissions for roles

来自分类Dev

Django表单:在不更改用户名的情况下更新用户的属性

来自分类Dev

SQLSTATE[42S22]:未找到列:1054 未知列“where 子句”中的“roles.user_id”

来自分类Dev

在给定属性值的情况下,如何找到它的字符串值

来自分类Dev

在给定n个盒子和x个球的情况下找到组合

来自分类Dev

在给定旋转矩阵的情况下找到顶点的新位置

来自分类Dev

在给定最大长度的情况下,找到毕达哥拉斯三胞胎的总和

来自分类Dev

在给定可变数据点的情况下如何找到曲线方程的理论

来自分类Dev

在给定GLIBCXX版本的情况下,如何找到已实现的C ++ 11功能

来自分类Dev

在给定两个点和半径的情况下找到圆的中心

来自分类Dev

在MATLAB中,在给定数据向量的情况下,在阈值内找到零交叉

来自分类Dev

在给定卡车箱尺寸的情况下,找到可以装满卡车的最大单位数

来自分类Dev

递归。在给定起点和最大距离的情况下找到所有最长的路径

来自分类Dev

python-在给定条件的情况下找到列表中下一项的位置

Related 相关文章

  1. 1

    如何在给定多个用户名的情况下查询Active Directory?

  2. 2

    在给定正确的用户名和密码的情况下XDM循环

  3. 3

    在给定相同输入的情况下,为什么scikit-learn中的SVC上的GridSearchCV会产生不同的概率?

  4. 4

    在给定相同输入的情况下,为什么scikit-learn中的SVC上的GridSearchCV会产生不同的概率?

  5. 5

    Spring Security / Spring Boot-如何为用户设置ROLES

  6. 6

    “用户”对象没有属性“ add_roles”

  7. 7

    在没有 Instagram api 的情况下通过 userid 检索用户名

  8. 8

    Configure Ansible roles with dependent roles

  9. 9

    获取用户名不同的情况下的用户总数

  10. 10

    如何在知道损坏的文件系统上的用户名的情况下找到密码

  11. 11

    如何为不同组织中的不同用户使用相同的用户名?

  12. 12

    在给定相同输入的情况下,某些代码如何可能仅因为它处于循环中而花费更多时间来运行?

  13. 13

    在给定相同的 SECRET 密钥的情况下,nodejs 服务器无法读取由 asp.net 服务器生成的 JWT 令牌

  14. 14

    使用wicket-auth-roles在过期的会话上向用户显示消息

  15. 15

    Flask用户@login_required和@roles_required无法正常工作

  16. 16

    SQL permissions for roles

  17. 17

    Django表单:在不更改用户名的情况下更新用户的属性

  18. 18

    SQLSTATE[42S22]:未找到列:1054 未知列“where 子句”中的“roles.user_id”

  19. 19

    在给定属性值的情况下,如何找到它的字符串值

  20. 20

    在给定n个盒子和x个球的情况下找到组合

  21. 21

    在给定旋转矩阵的情况下找到顶点的新位置

  22. 22

    在给定最大长度的情况下,找到毕达哥拉斯三胞胎的总和

  23. 23

    在给定可变数据点的情况下如何找到曲线方程的理论

  24. 24

    在给定GLIBCXX版本的情况下,如何找到已实现的C ++ 11功能

  25. 25

    在给定两个点和半径的情况下找到圆的中心

  26. 26

    在MATLAB中,在给定数据向量的情况下,在阈值内找到零交叉

  27. 27

    在给定卡车箱尺寸的情况下,找到可以装满卡车的最大单位数

  28. 28

    递归。在给定起点和最大距离的情况下找到所有最长的路径

  29. 29

    python-在给定条件的情况下找到列表中下一项的位置

热门标签

归档