Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 2010 如何使用客户端对象模型检查SharePoint 2010的用户权限?_Sharepoint 2010 - Fatal编程技术网

Sharepoint 2010 如何使用客户端对象模型检查SharePoint 2010的用户权限?

Sharepoint 2010 如何使用客户端对象模型检查SharePoint 2010的用户权限?,sharepoint-2010,Sharepoint 2010,以下代码始终返回false(这是不正确的,因为用户在站点级别拥有完全控制权限): 站点; BasePermissionMask; ClientResult结果; permissionMask=新的基本权限(); permissionMask.Set(PermissionKind.ManageWeb); 结果=site.DoesUserHavePermissions(permissionMask); 返回结果值; 我正在尝试利用新的SharePoint 2010客户端对象模型。当我发现DoesU

以下代码始终返回false(这是不正确的,因为用户在站点级别拥有完全控制权限):

站点;
BasePermissionMask;
ClientResult结果;
permissionMask=新的基本权限();
permissionMask.Set(PermissionKind.ManageWeb);
结果=site.DoesUserHavePermissions(permissionMask);
返回结果值;

我正在尝试利用新的SharePoint 2010客户端对象模型。当我发现DoesUserHavePermissions方法时,我很激动,但似乎我不确定我是否知道如何使用它。我不知道是否使用了正确的掩码,或者是否应该指定要检查其权限级别的用户帐户?任何帮助都将不胜感激。谢谢

缺少一件重要的事情——客户端上下文。此对象负责对任何SharePoint客户端对象模型对象实际执行查询

应将代码修改为以下内容:

ClientContext clientContext;
Site site;
BasePermissions permissionMask;
ClientResult<bool> result;

permissionMask = new BasePermissions();
permissionMask.Set(PermissionKind.ManageWeb);
//if we want to check ManageWeb permission
clientContext = new ClientContext(siteUri);
//siteUri is a method parameter passed as a string
clientContext.Credentials = credential;
//credential is a method parameter passed as a NetworkCredential object
//that is the user for which we are checking the ManageWeb permission
site = clientContext.Web;
result = site.DoesUserHavePermissions(permissionMask);

return result.Value;
ClientContext-ClientContext;
场地;
BasePermissionMask;
ClientResult结果;
permissionMask=新的基本权限();
permissionMask.Set(PermissionKind.ManageWeb);
//如果我们想检查ManageWeb权限
clientContext=新的clientContext(siteUri);
//siteUri是作为字符串传递的方法参数
clientContext.Credentials=凭证;
//credential是作为NetworkCredential对象传递的方法参数
//这就是我们正在检查其ManageWeb权限的用户
site=clientContext.Web;
结果=site.DoesUserHavePermissions(permissionMask);
返回结果值;
如果为用户分配了ManageWeb权限,则返回true,否则返回false。
要获得权限枚举的完整列表,请查看此列表。

我只是想添加一些用于此的代码。这几乎是一样的,但没有膨胀

using (var context = new ClientContext(siteUrl))
{
   context.Load(context.Web);
   context.ExecuteQuery();
   BasePermissions permissionMask;
   ClientResult<bool> hasPermissions;
   permissionMask = new BasePermissions();
   permissionMask.Set(PermissionKind.ManageWeb);
   hasPermissions = context.Web.DoesUserHavePermissions(permissionMask);

}
使用(var context=newclientcontext(siteUrl))
{
Load(context.Web);
context.ExecuteQuery();
BasePermissionMask;
ClientResult拥有权限;
permissionMask=新的基本权限();
permissionMask.Set(PermissionKind.ManageWeb);
hasPermissions=context.Web.DoesUserHavePermissions(permissionMask);
}
using (var context = new ClientContext(siteUrl))
{
   context.Load(context.Web);
   context.ExecuteQuery();
   BasePermissions permissionMask;
   ClientResult<bool> hasPermissions;
   permissionMask = new BasePermissions();
   permissionMask.Set(PermissionKind.ManageWeb);
   hasPermissions = context.Web.DoesUserHavePermissions(permissionMask);

}