2016-09-15 5 views
0
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 по умолчанию), он дает ошибку. Поскольку у этой роли нет идентификатора портала. Можете ли вы посоветовать, есть ли способ получить это с жестким кодом идентификатор роли.Получить все пользовательские роли в DNN

ответ

3

Здесь вы идете ...

RoleController RoleController = new RoleController(); 
IList<RoleInfo> roleInfoArr = RoleController.GetRoles(PortalId); 

foreach (RoleInfo roleInfo in roleInfoArr) 
{ 
    if (roleInfo.RoleName == "All Users") 
    { 
     Response.Write(roleInfo.RoleID); 
    } 
} 

Но ID для All Users всегда -1 для каждого портала.

Для Superusers это -2

Для Unauthenticated Users это -3

Обратите внимание, что Administrator Идентификатор роли отличается на портале

+0

пожалуйста, вы можете посоветовать, что если у меня есть более чем 2 порталы в пределах того же экземпляра DNN. Тогда эта роль Все пользователи будут распространены для обоих порталов или нет? это основная проблема для меня использовать ИД портала. –

+0

Да, идентификатор всегда равен -1 для каждого портала. См. Таблицу «Роли» в базе данных DNN. – VDWWD

+0

благодарит много, и это экономит много времени. –