获取 DNN 中的所有用户角色

Get All User Roles in DNN

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 预定义方法。但是,当我尝试获取 All Users(DNN 默认角色)的角色 ID 时,出现错误。因为这个角色没有 portal Id。能否请您指点一下,有什么方法可以在不对角色 ID 进行硬编码的情况下获得它。

给你...

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 每个门户不同