写在前面

这样的一个场景,客户端请求sharepoint的rest api,但不允许传输用户的密码,使用的是证书认证的方式,但这样所有的用户用的是同一个证书,这样造成的结果就是无法识别该用户是否有操作,及查询的权限。这里是实际项目中遇到的一个问题。将解决方案,记录一下。

解决方案

 try{ClientContext spContext = new ClientContext("http://xxxx/xxx/xxx");spContext.ExecutingWebRequest += spContext_ExecutingWebRequest;var list = spContext.Web.Lists.GetByTitle("test");spContext.Load(list);spContext.ExecuteQuery();var permissions = list.GetUserEffectivePermissions(@"i:0#.w|domain\test15");spContext.ExecuteQuery();foreach (var permission in Enum.GetValues(typeof(PermissionKind)).Cast<PermissionKind>()){var permissionName = Enum.GetName(typeof(PermissionKind), permission);var hasPermission = permissions.Value.Has(permission);Debug.WriteLine("Permission: {0}, HasPermission: {1}", permissionName, hasPermission);}}catch (Exception){throw;}

在回调方法中,带上证书认证

 void spContext_ExecutingWebRequest(object sender, WebRequestEventArgs e){HttpWebRequest webReq = e.WebRequestExecutor.WebRequest;var accessToken = TokenHelper.GetS2SAccessTokenWithWindowsIdentity(new Uri("http://xxx/xxx/xxxxx"), null);webReq.Method = "Post";webReq.Accept = "application/json;odata=verbose";webReq.Headers.Add("Authorization", "Bearer " + accessToken);}

然后根据返回的权限,参考
SPBasePermissions 枚举

根据该枚举提供的值,判断该用户是否拥有权限。

转载于:https://www.cnblogs.com/wolf-sun/p/4637126.html

[sharepoint]根据用户名获取该用户的权限相关推荐

  1. 获取超级用户访问权限-redhat 7.2

    获取超级用户访问权限 Root用户: 在redhat7.2中root用户特权高于文件系统上的一般特权,用于管理系统,要执行诸如安装或删除软件以及管理系统文件和目录等任务时,必须将特权升级到root用户 ...

  2. 获取超级用户访问权限

    获取超级用户访问权限 root用户 大多数操作系统都有某种超级用户,这是拥有系统所有权限的用户.在 Red Hat Enterprise Linux中,该用户就是root用户.该用户的特权高于文件系统 ...

  3. mysql 获取所有用户所有权限存储过程

    自己写的一个存储过程!一次性获取mysql所有用户的所有权限列表! 做权限列表统计的时候这个非常爽! DELIMITER $$ USE `mysql`$$ DROP PROCEDURE IF EXIS ...

  4. sudoers 用户权限配置_使用sudo让普通用户获取root用户的权限

    sudo 是 Linux 系统管理指令,是允许系统管理员让普通用户执行一些或者全部的 root 命令的一个工具,如 halt,reboot,su 等等.这样不仅减少了 root 用户的登录 和管理时间 ...

  5. 创建用户赋权限_JMeter接口测试实战之「创建用户」篇

    JMeter接口测试实战 场景分析: 在企业中, 多数会有很多管理系统如CMS, CRM, 中台等各种管理系统, 这些有一个共同点就是区分用户权限, 如: 阿一是管理员权限, 阿二是部门经理权限, 阿 ...

  6. CRM、用户管理权限

    CRM目录结构 from django.shortcuts import HttpResponse,render,redirect from django.conf.urls import url f ...

  7. 使用INNER JOIN ON 多表关联查询,获取指定用户下指定权限的资源SQL:

    摘要:最近在看一个开源框架,其中用户,角色,资源,这块我感觉比较重要,所以就自己也模仿着写了下,其中在获取指定用户下的权限资源的时候遇到问题了,开始时,我首先想到的方法就是通过用户->角色-&g ...

  8. spring boot结合shiro实现用户-角色-权限的控制(包含用户名密码登陆和手机号验证码登陆)

    spring boot整合shiro实现权限校验 1.首先导入项目所需jar包 <parent><groupId>org.springframework.boot</gr ...

  9. 计算机超级用户权限,win7系统获取超级用户权限的方法(图文)

    电脑安装上win7操作系统后,都会建立管理员账户,这样能够保护电脑安全.在win7专业版系统中修改和删除一些文件需要获取管理器权限,获取到用户权限,但是其中还有一个超级的用户权限,那么win7系统怎么 ...

最新文章

  1. 【Zabbix】 Zabbix表结构说明【转载】
  2. 导航栏下拉菜单效果代码
  3. SDL播放音频的时候发现SDL_OpenAudioDevice打开一直失败
  4. 解决中文乱码的问题要考虑的8个地方|(utf-8,用于抛砖引玉)
  5. Android屏幕尺寸适配注意事项
  6. PAT乙:1022 D进制的A+B
  7. 如何使用PDF阅读器将PDF转换成图片
  8. 大学c语言题库 答案,天津城建大学C语言题库附答案.doc
  9. css小猫笑起来的动画
  10. js实现数组扁平化的6种方法
  11. 少儿python教学_如何教少儿学习Python编程
  12. 【开发者平台汇总】-各大平台开发者及开放平台集锦
  13. u盘中毒数据怎么才能恢复
  14. 数据分析综述:一文带你详细了解自动驾驶技术
  15. 拼多多显示服务器有点问题,拼多多为什么登录不上 登录不上解决方法
  16. 五款堪称神器的软件,电脑日常使用必备。
  17. 计算机二级考试没过能重考吗,计算机二级能重复考吗
  18. 真机最小化安装centos7 网卡驱动
  19. 三星note升级android9,Verizon版三星Note 9正式升级Android 10
  20. 什么是端口(port)?

热门文章

  1. python翻译文档地址
  2. php 域名验证系统_PHP授权验证系统(域名+IP双重验证一键更新授权系统)
  3. shiro放行_Shiro框架详解 tagline
  4. java url特殊字符处理_简单实例处理url特殊符号处理(2种方法)
  5. 计算机基础知识关于进制,计算机基础知识-- 进制和编码
  6. java监控队列_java-Spring Rabbit监听输出队列或接收
  7. linux 生成字母序列,Python序列之字符串
  8. python一行没写完用什么隔离_完全隔离的Python环境
  9. 医学科研中的作用_医学论文中参考文献的作用及常见类型
  10. python 断点下载_python多进程断点续传分片下载器