如何授予用户权限使用客户端对象模型的某些文件夹? [英] How to grant user permission to certain folders using Client Object Model?

查看:258
本文介绍了如何授予用户权限使用客户端对象模型的某些文件夹?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

到目前为止,我能够给予用户一定的权限用下面的代码:

So far I am able to grant user certain permission with the following code:

    ClientContext context = new ClientContext("http://myRealURL");
    Principal user = context.Web.EnsureUser(@"myLoginAccout");

    RoleDefinition readDef = context.Web.RoleDefinitions.GetByName("Read");
    RoleDefinitionBindingCollection roleDefCollection = new RoleDefinitionBindingCollection(context);
    roleDefCollection.Add(readDef);
    RoleAssignment newRoleAssignment = context.Web.RoleAssignments.Add(user, roleDefCollection);

    context.ExecuteQuery(); 



上面的代码工作正常,但现在我的任务是将用户权限仅添加到用C#某些文件夹码。例如,在图书馆,我有一个名为 JZhu ,并在 JZhu 库,我有两个文件夹文件夹1 文件夹2 。是否有可能改变这两个文件夹的访问权限与客户端对象模型

The code above works fine, now my task is to add the user permission only to certain folders with C# code. For example, under Libraries, I have a library called JZhu, and inside JZhu, I have two folders folder1 and folder2. Is it possible to change the access permission on these two folders with Client Object Model?

推荐答案

下面的例子演示了如何通过CSOM定制访问文件夹。有两个步骤:

The following example demonstrates how to customize access to folder via CSOM. There are two steps:


  1. 分配一个文件夹的唯一权限,因为默认文件夹
    继承父对象的权限(名单)

  2. 授予用户权限的文件夹

例如:

Principal user = ctx.Web.EnsureUser(accountName);
var folder = ctx.Web.GetFolderByServerRelativeUrl(folderUrl);
var roleDefinition = ctx.Site.RootWeb.RoleDefinitions.GetByType(RoleType.Reader);  //get Reader role
var roleBindings = new RoleDefinitionBindingCollection(ctx) { roleDefinition };
folder.ListItemAllFields.BreakRoleInheritance(true, false);  //set folder unique permissions
folder.ListItemAllFields.RoleAssignments.Add(user, roleBindings);
ctx.ExecuteQuery();



,其中 folderUrl 参数对应于相对于服务器网址为一个文件夹,

, where folderUrl parameter corresponds to server relative url for a folder,

例如 /新闻/文件/档案以下结构:

News (site)
  |
  Documents (library)
     |
     Archive (folder)

这篇关于如何授予用户权限使用客户端对象模型的某些文件夹?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆