5

ユーザーがリストの特定のアイテムのみを表示できるように、プログラムで作成したいと思います。

基本的に、アイテムが作成されたときに実行されるワークフローでは、いくつかの作業を行い、このアイテムについて一部の人に通知します。また、特定のユーザー(アイテムの内容に基づいてランタイムで検索)のみがアイテムを読み取ることができるように、アイテムのアクセス許可を変更する必要があります。リストにアクセスできる残りのユーザーには、特定のアイテムのみが表示され、すべてのアイテムは表示されません。リストアイテムは必ずしも所有されているとは限りませんが、それを表示する必要があるユーザーがいるため、ユーザーが自分のアイテムのみを表示できるようにリストのアクセス許可を設定することはできません。

これが役立つ場合は、これをコンテキストに入れます-リストは特定のメンバーに職務を登録しています。すべてのリスト項目は、役割リスト内の役割へのルックアップとメンバーリスト内のメンバーへのルックアップを含む役割割り当てです。各役割の割り当てには、説明、開始日などの追加情報が必要なため、役割のメンバーリストでマルチルックアップフィールドを直接使用していません。各役割には、それを管理する特定のユーザー/グループがあります。この大きな役割の割り当てのリストにアクセスするときに、ユーザーが自分が管理している役割の役割の割り当てのみを表示できるようにしたいと思います。

アドバイスをいただければ幸いです。

4

1 に答える 1

10

個々のリストアイテムに権限を割り当てることができます。例:

        // get list item
        SPListItem item = <your list item>;
        if (!item.HasUniqueRoleAssignments)
        {
            item.BreakRoleInheritance(true);
        }

        // get principal
        SPPrincipal principal = <principal to grant permissions to>;

        // get role definition
        SPRoleDefinition rd = <role that contains the permissions to be granted to the principal>;

        // create role assignment
        SPRoleAssignment ra = new SPRoleAssignment(principal);
        ra.RoleDefinitionBindings.Add(rd);
        item.RoleAssignments.Add(ra);

ただし、リストアイテムごとにアクセス許可を割り当てることのパフォーマンスと運用上の影響に注意してください。

一般的に、私は好む

  • リストレベルより深く割り当てられていない権限
  • 可能な限り、グループにアクセス許可を割り当ててから、個々のユーザーをそれらのグループに含めます。
于 2009-07-01T14:59:04.437 に答える