SharePoint 2013でCSOMを使用して、特定のアクセス許可に基づいてすべてのユーザーを取得します

モハン・ディブラニヤ

サイトで特定の役割/権限を持つすべてのユーザーのリストを取得したいと思います。例えば、私が使用して編集権限(RoleType =編集)を持っているユーザーのリストを必要とするネットCSOMをSharePointの2013年に彼らがどのグループにすることができます。私は多くのことを試みました。ただし、これを行う簡単な方法はないようです。何か案は?

よろしくお願いします。

Vadim Gremyachev

Web.GetUserEffectivePermissionsメソッド利用して、指定したユーザーがWebサイト内で持つ有効なアクセス許可を取得できます。

例1:許可によるユーザーの取得

最初の例は、権限によってユーザー、特にリストアイテムを編集できるユーザーPermissionKind.EditListItemsを使用を取得する方法を示しています

using (var ctx = new ClientContext(webUri))
{
      //Retrieve site users             
      var users = ctx.LoadQuery(ctx.Web.SiteUsers.Where(u => u.PrincipalType == PrincipalType.User));
      ctx.ExecuteQuery();
      //Retrieve users permissions
      var userPermissionsResults = users.ToDictionary(user => user, user => ctx.Web.GetUserEffectivePermissions(user.LoginName));
      ctx.ExecuteQuery();
      //Filter the users who can edit list items      
      var usersCanEditListItems = new List<User>();
      foreach (var result in userPermissionsResults)
      {
          var user = result.Key;
          var userPermissions = result.Value.Value;
          if (userPermissions.Has(PermissionKind.EditListItems))
          {
             usersCanEditListItems.Add(user);
          }
      }
 }

例2:ユーザーを役割別に取得する

以下の場合、ロールタイプまたは権限レベルの例では、私たちがする必要があるため、もう少し複雑になります:

  • 役割タイプの権限のリストを取得します(ステップ1および2)
  • 権限を持つユーザーを取得する(ステップ3および4)
  • ロール権限でユーザーをフィルタリングする(ステップ5)

例:

using (var ctx = new ClientContext(webUri))
{

     //1.Retrieve role definition 
     var roleDef = ctx.Web.RoleDefinitions.GetByType(RoleType.Editor);
     ctx.Load(roleDef);
     ctx.ExecuteQuery();
     //2.Get permission levels for role 
     var permLevelNames = Enum.GetNames(typeof (PermissionKind));
     var permissionLevels = permLevelNames.Select(permLevelName => (PermissionKind) Enum.Parse(typeof (PermissionKind), permLevelName)).Where(permissionLevel => roleDef.BasePermissions.Has(permissionLevel)).ToList();

     //3.Retrieve users
     var users = ctx.LoadQuery(ctx.Web.SiteUsers.Where(u => u.PrincipalType == PrincipalType.User ));
     ctx.ExecuteQuery();
     //4.Retrieve users permissions
     var userPermissionsResults = users.ToDictionary(user => user, user => ctx.Web.GetUserEffectivePermissions(user.LoginName));
     ctx.ExecuteQuery();

     //5.Filter users by role
     var editorUsers = new List<User>();
     foreach (var result in userPermissionsResults)
     {
         var user = result.Key;
         var userPermissions = result.Value.Value;
         var hasPermissions = permissionLevels.All(userPermissions.Has); //has the same permissions?
         if (hasPermissions)
         {
             editorUsers.Add(user);
         }
     }
 }  

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SharePoint 2013はJavaScriptを使用して現在のユーザーを取得します

分類Dev

CSOMを介してSharePointからユーザーを取得するにはどうすればよいですか?

分類Dev

サイトSharePoint2013のすべての場所で一意のアクセス許可を削除する

分類Dev

CSOMを使用してSharePoint2013アラートを無効にする方法

分類Dev

一部のActiveDirectory DLをSharePointサイトのアクセス許可に追加することをユーザーに制限しますか?

分類Dev

NTLMを使用してSharePointリストにアクセスするPythonスクリプトの現在のユーザー資格情報で承認する

分類Dev

SharePoint 2013 Webサイト(SPWeb)上のすべてのユーザーのリストを取得するにはどうすればよいですか?

分類Dev

SharepointのRESTAPIを介してMSOLユーザーを取得する

分類Dev

RESTエンドポイントを使用してSharepointのファイル/フォルダー/ドキュメントのアクセス許可レベルを取得するにはどうすればよいですか?

分類Dev

Azure Logic Appを使用して、[作成済み]フィールドの最大値に基づいてSharePointリストからレコードを取得します

分類Dev

ユーザー資格情報を使用してSharePoint APIにアクセスする

分類Dev

SharePointのRESTAPIを使用してSharePointサイトのリクエストダイジェストを取得するには、どのようなアクセス許可が必要ですか?

分類Dev

いくつかの条件に基づいて新しいaspxページでSharePointリストアイテムを取得する方法

分類Dev

C#SharePointクライアントオブジェクトモデルを使用してSharePointリストのアクセス許可を確認する

分類Dev

どのAPIを介してSharePointでOneDriveにアクセスしますか

分類Dev

Sharepoint 2013-ユーザーログイン時に新しいセッショントークンを指定し、以前のすべてのトークンを期限切れにする場合

分類Dev

c#-現在ログインしているユーザーがSharepoint2013のページにアクセスできるかどうかを確認する方法

分類Dev

Sharepoint 2013 で JavaScript を使用してルックアップのリンク リストを取得する

分類Dev

SharePointリストをクエリし、IDに基づいて特定の行を取得し、それをページに表示するにはどうすればよいですか?

分類Dev

Sharepoint 2013 REST Api / CSOMを使用して公開画像フィールドを取得する

分類Dev

Sharepoint 2013:現在のユーザーグループメンバーシップに基づいてセカンダリナビゲーションメニューのURLリンクを表示する

分類Dev

エラー:SharePointで「ユーザーが存在しないか一意ではありません」CSOMを使用してユーザーを追加しています

分類Dev

javascriptでメールを送信するためのSharepointのアクセス許可

分類Dev

SharePoint2013オンプレミスはRESTを使用してユーザープロファイルデータプラグインを取得します

分類Dev

SharePoint 2013 / Office365リストにアクセスするときの「DTDは禁止されています」エラー(ただし、XMLの使用を公然と認識していません)

分類Dev

Sharepoint 2010、Angularバージョン6で現在のユーザーを回復しています

分類Dev

Windowsサービスを使用して、デスクトップからSharePointにユーザープロファイル画像をアップロードします

分類Dev

odata apiを使用してSharepoint 2013からリストアイテムのみを取得します

分類Dev

同じユーザーに対する異なるルートおよびサブフォルダーのアクセス許可-SharePoint2013

Related 関連記事

  1. 1

    SharePoint 2013はJavaScriptを使用して現在のユーザーを取得します

  2. 2

    CSOMを介してSharePointからユーザーを取得するにはどうすればよいですか?

  3. 3

    サイトSharePoint2013のすべての場所で一意のアクセス許可を削除する

  4. 4

    CSOMを使用してSharePoint2013アラートを無効にする方法

  5. 5

    一部のActiveDirectory DLをSharePointサイトのアクセス許可に追加することをユーザーに制限しますか?

  6. 6

    NTLMを使用してSharePointリストにアクセスするPythonスクリプトの現在のユーザー資格情報で承認する

  7. 7

    SharePoint 2013 Webサイト(SPWeb)上のすべてのユーザーのリストを取得するにはどうすればよいですか?

  8. 8

    SharepointのRESTAPIを介してMSOLユーザーを取得する

  9. 9

    RESTエンドポイントを使用してSharepointのファイル/フォルダー/ドキュメントのアクセス許可レベルを取得するにはどうすればよいですか?

  10. 10

    Azure Logic Appを使用して、[作成済み]フィールドの最大値に基づいてSharePointリストからレコードを取得します

  11. 11

    ユーザー資格情報を使用してSharePoint APIにアクセスする

  12. 12

    SharePointのRESTAPIを使用してSharePointサイトのリクエストダイジェストを取得するには、どのようなアクセス許可が必要ですか?

  13. 13

    いくつかの条件に基づいて新しいaspxページでSharePointリストアイテムを取得する方法

  14. 14

    C#SharePointクライアントオブジェクトモデルを使用してSharePointリストのアクセス許可を確認する

  15. 15

    どのAPIを介してSharePointでOneDriveにアクセスしますか

  16. 16

    Sharepoint 2013-ユーザーログイン時に新しいセッショントークンを指定し、以前のすべてのトークンを期限切れにする場合

  17. 17

    c#-現在ログインしているユーザーがSharepoint2013のページにアクセスできるかどうかを確認する方法

  18. 18

    Sharepoint 2013 で JavaScript を使用してルックアップのリンク リストを取得する

  19. 19

    SharePointリストをクエリし、IDに基づいて特定の行を取得し、それをページに表示するにはどうすればよいですか?

  20. 20

    Sharepoint 2013 REST Api / CSOMを使用して公開画像フィールドを取得する

  21. 21

    Sharepoint 2013:現在のユーザーグループメンバーシップに基づいてセカンダリナビゲーションメニューのURLリンクを表示する

  22. 22

    エラー:SharePointで「ユーザーが存在しないか一意ではありません」CSOMを使用してユーザーを追加しています

  23. 23

    javascriptでメールを送信するためのSharepointのアクセス許可

  24. 24

    SharePoint2013オンプレミスはRESTを使用してユーザープロファイルデータプラグインを取得します

  25. 25

    SharePoint 2013 / Office365リストにアクセスするときの「DTDは禁止されています」エラー(ただし、XMLの使用を公然と認識していません)

  26. 26

    Sharepoint 2010、Angularバージョン6で現在のユーザーを回復しています

  27. 27

    Windowsサービスを使用して、デスクトップからSharePointにユーザープロファイル画像をアップロードします

  28. 28

    odata apiを使用してSharepoint 2013からリストアイテムのみを取得します

  29. 29

    同じユーザーに対する異なるルートおよびサブフォルダーのアクセス許可-SharePoint2013

ホットタグ

アーカイブ