【问题标题】:Get All User Roles in DNN获取 DNN 中的所有用户角色
【发布时间】:2016-09-15 13:14:58
【问题描述】:
public DnnRole GetDnnRoleByName(int portalId, string dnnRoleName)
        {
            DnnRole role = null;
            try
            {                
                RoleController rc = new RoleController();
                RoleInfo dnnRole = rc.GetRoleByName(portalId, dnnRoleName);

                if (dnnRole != null)
                {
                    role = new DnnRole();
                    role.Id = dnnRole.RoleID;
                    role.RoleName = dnnRole.RoleName;
                    role.Description = dnnRole.Description;

                }
            }

以上是我为多种目的获取角色的代码以及此 DNN 预定义方法。但是,当我尝试获取 所有用户(DNN 默认角色)的角色 ID 时,会出现错误。因为此角色没有门户 ID。请问有没有什么方法可以不用硬编码角色ID来获得这个。

【问题讨论】:

    标签: asp.net dotnetnuke roles


    【解决方案1】:

    给你...

    RoleController RoleController = new RoleController();
    IList<RoleInfo> roleInfoArr = RoleController.GetRoles(PortalId);
    
    foreach (RoleInfo roleInfo in roleInfoArr)
    {
        if (roleInfo.RoleName == "All Users")
        {
            Response.Write(roleInfo.RoleID);
        }
    }
    

    但对于每个 Portal,All Users 的 ID 始终为 -1

    对于Superusers,它是-2

    对于Unauthenticated Users,它是-3

    请注意,Administrator roleId 因门户而异

    【讨论】:

    • 如果我在同一个 DNN 实例中有超过 2 个门户,请您提出建议。那么这个所有用户角色对于两个门户来说都是通用的吗?这是我使用门户 ID 的主要关注点。
    • 是的,每个门户的 ID 始终为 -1。请参阅 DNN 数据库中的表Roles
    猜你喜欢
    • 2019-05-21
    • 1970-01-01
    • 2023-03-21
    • 2021-10-06
    • 2014-05-08
    • 2013-10-29
    • 2016-04-17
    • 1970-01-01
    • 2015-10-17
    相关资源
    最近更新 更多