2016-09-15 22 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のデフォルトロール)のロールIDを取得しようとすると、エラーが発生します。このロールにはポータルIDがないためです。あなたは、ハードコードにロールIDを付けてこれを得る方法はありますか?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); 
    } 
} 

しかしAll UsersためのIDは、常にすべてのポータルの-1です。

Superusersのために、それはAdministrator roleIdがポータル

+0

ごとに異なること-3

注あなたは、私が同じDNNインスタンス内で2つの以上のポータルを持っている場合は、そのアドバイスを喜ばせることができますUnauthenticated Usersについては-2

です。次に、このAllユーザーの役割は両方のポータルに共通するのでしょうか?それは私がポータルIDを使用する主な懸念事項です。 –

+0

はい、各ポータルのIDは常に-1です。 DNNデータベースの表「ロール」を参照してください。 – VDWWD

+0

ありがとう、これは私に多くの時間を節約します。 –

関連する問題