2011-10-18 12 views
0

サイトのアクセス許可を継承していないドキュメントライブラリがあります(カスタムアクセス許可が設定されています)。次に、C#を使用してこのライブラリの管理者権限を持つユーザーを探しています。spdocumentライブラリの管理者を検索

私は管理者権限を持つユーザーIDをリストする必要があります。

おかげで、

答えて

0

リスト管理者のようなものはありません。しかし、あなたはしかしリストの権限を管理してユーザーとグループを取得することができます:

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プロパティで取得できます。 SPListItemSPListの両方がSPSecurableObjectから継承しているので、SPListItemのチェックは上記と同じです。 SPGroupからSPUserを区別するために

は単にSPRoleAssigment.Memberの種類を確認してください。

IEnumerable<SPUser> adminUsers = admins.OfType<SPUser>(); 

SPUserオブジェクトがADセキュリティグループを表すことがあるので注意してください。これはSPUser.IsDomainGroupプロパティで確認できます。

+0

私は、ユーザーがSPFolderオブジェクトまたはSPGroupオブジェクトを持っているかどうかを調べる方法を、SPFolderオブジェクトに許可しているかどうかを知りたい場合は、lot.Ifの方が役に立ちます。アドバンスと時間ありがとう。 – Sudarsanan

関連する問題