サイトのアクセス許可を継承していないドキュメントライブラリがあります(カスタムアクセス許可が設定されています)。次に、C#を使用してこのライブラリの管理者権限を持つユーザーを探しています。spdocumentライブラリの管理者を検索
私は管理者権限を持つユーザーIDをリストする必要があります。
おかげで、
サイトのアクセス許可を継承していないドキュメントライブラリがあります(カスタムアクセス許可が設定されています)。次に、C#を使用してこのライブラリの管理者権限を持つユーザーを探しています。spdocumentライブラリの管理者を検索
私は管理者権限を持つユーザーIDをリストする必要があります。
おかげで、
リスト管理者のようなものはありません。しかし、あなたはしかしリストの権限を管理してユーザーとグループを取得することができます:
SPList list = // get your list
IEnumerable<SPPrincipal> admins = list.RoleAssignments.Cast<SPRoleAssignment>()
.Where(ra =>
ra.RoleDefinitionBindings.Cast<SPRoleDefinition>()
.Any(r => (r.BasePermissions & SPBasePermissions.ManageLists) == SPBasePermissions.ManageLists))
.Select(ra => ra.Member);
更新:SPFolder
上
権限は、対応するSPListItem
経由で確認することができます。これはSPFolder.Item
プロパティで取得できます。 SPListItem
とSPList
の両方がSPSecurableObject
から継承しているので、SPListItem
のチェックは上記と同じです。 SPGroup
からSPUser
を区別するために
は単にSPRoleAssigment.Member
の種類を確認してください。
IEnumerable<SPUser> adminUsers = admins.OfType<SPUser>();
はSPUser
オブジェクトがADセキュリティグループを表すことがあるので注意してください。これはSPUser.IsDomainGroup
プロパティで確認できます。
私は、ユーザーがSPFolderオブジェクトまたはSPGroupオブジェクトを持っているかどうかを調べる方法を、SPFolderオブジェクトに許可しているかどうかを知りたい場合は、lot.Ifの方が役に立ちます。アドバンスと時間ありがとう。 – Sudarsanan