首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何以编程方式检查用户是否可以访问SharePoint站点?

如何以编程方式检查用户是否可以访问SharePoint站点?
EN

Stack Overflow用户
提问于 2015-04-15 07:32:56
回答 1查看 5K关注 0票数 2

我有一个作为SharePoint运行在保存服务器上的服务。我可以使用这个服务在不同的SharePoint站点上上传/移动文档库中的文件。我现在试图检查用户(域\ user )是否拥有访问特定SharePoint站点的权限。

我曾尝试使用以下方法:

代码语言:javascript
运行
AI代码解释
复制
web.EnsureUser("DOMAIN\USER")
web.CheckPermissions(SPBasePermissions.Open)

如果用户没有权限,上述内容将引发UnauthorizedAccessException。对我来说,它从不引发任何异常,尽管该用户没有访问这个特定站点的权限(通过尝试访问用户机器上的站点来验证-未经授权的401)

web.DoesUserHavePermissions("DOMAIN\USER", SPBasePermissions.Open)

上面应该返回True或False,但是对于我来说,它总是返回False,也是当用户有访问站点的权限时(通过访问用户机器上的站点来验证- OK 200)。

web.GetUserEffectivePermissions("DOMAIN\USER")

上面的内容应该返回权限掩码,但它总是返回一个EmptyMask。

我想我不明白这些方法,但它们在互联网上的任何地方都没有很好的描述。

有人知道我如何检查用户是否拥有访问SharePoint站点所需的权限吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-15 01:24:58

我和你有同样的问题。我以“域\用户名”的格式传递用户名,但它将所有权限返回为false。最后,我意识到我在为SharePoint使用基于声明的身份验证。我将用户名改为声明格式"i:0#.w|domain\username“,从那以后,它就开始完美地工作了。希望这能有所帮助。

这是一个工作代码样本-

代码语言:javascript
运行
AI代码解释
复制
    var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);

    using (var clientContext = spContext.CreateUserClientContextForSPHost())
    {

        string userName = @"i:0#.w|domain\username";

        var userPermissions = clientContext.Web.GetUserEffectivePermissions(userName);
        clientContext.ExecuteQuery();

        foreach (var permission in Enum.GetValues(typeof(PermissionKind)).Cast<PermissionKind>())
        {
            var permissionName = Enum.GetName(typeof(PermissionKind), permission);
            var hasPermission = userPermissions.Value.Has(permission);
            Response.Write(String.Format("<br>Permission: {0}, HasPermission: {1}", permissionName, hasPermission));
        }


}

源- http://tech-turf.blogspot.in/2015/12/sharepoint-2013-getusereffectivepermiss.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29654483

复制
相关文章
爬虫--xpath匹配,requests库
使用xpath得到老师的图片链接和简介信息,并且把图片保存下来,老师简介保存到文本中; 要求: 杨老师的信息图片<img src="pics/ygf.jpg"> 图片保存的名字叫ygf.jpg,其他老师类似;并且都保存到当前目录下的image目录 杨老师的信息保存文件名叫“ygf.txt”,其他老师类似;并且保存到当前目录下的text目录 代码: import requests from lxml import etree import os def save(img_url, desc):
用户2337871
2019/07/19
5100
爬虫--xpath匹配,requests库
scala 模式匹配的几个模式
Scala 的模式匹配是类似与正则匹配的的模式匹配,但是不仅仅如此,它还可以匹配对象的内在的构建形式.
Tim在路上
2020/08/04
1.2K0
模式匹配
如果在不设置全文搜索的情况下,如何过滤查询结果,您会选择哪种方法?LIKE也许是最容易想到的:
yzsDBA
2021/02/03
9990
模式匹配
匹配操作符(绑定操作符): =~、!~ =~检验匹配是否成功:result= var =~ /abc/;若在该字符串中找到了该模式,则返回非零值,即true,不匹配则返回false。
生信补给站
2020/08/06
1.7K0
Scala 的模式匹配
最近开始学习 Scala,相较于学习 Haskell 的过程来看,Scala 真是直观得多,友好得多,更容易上手。以前写过关于从熟悉的 Java 和 JavaScript 来逐步学习 Groovy 和 Haskell 的文章,这以后再来学习 Scala 的话,就可以不断比较了。如果和我一样有 Java 经验的话但是从来没有接触过 Scala 的话,建议先阅读这篇文章,A Scala Tutorial for Java Programmers,一边比较,一边熟悉,同时配套的还有这个,Scala for Java programmers – Joakim Ohlrogge & Enno Runne,Youtube 上的视频,很直观,然后再从 Scala 官网的文档上面逐步涉入。
四火
2022/07/19
1K0
Scala 的模式匹配
Rust模式匹配
模式匹配是从函数式编程语言(例如:Haskell,Lisp)吸收而来的,用于为复杂的类型系统提供一个轻松的解构能力。rust使用match来提供模式匹配的功能。mathc类似于其它编程语言中的switch-case,但是远比switch-case强大。match的通用模式如下所示。
zy010101
2023/02/27
1.5K0
有趣的Scala模式匹配
它被称为模式匹配,模式匹配包含了一系列以case关键字开头的分支,每一个分支包含一个模式或者是多个表达式。模式有很多种,例如常量模式('*',1),变量模式(可以匹配任何值),通配模式(又见面了,'_'符号),构造方法模式(类似于样例类的初始化)等等。 用一个例子简单说明就是:
哒呵呵
2018/08/06
1.1K0
Rust中的模式匹配
在其它一些语言中,let x = 5 之类的语句,仅仅只是赋值语句。但是在rust中,可以换个角度理解,认为5这个值匹配到了x变量。如果觉得有些牵强,可以再来一个示例:
菩提树下的杨过
2021/11/30
1.9K0
Rust中的模式匹配
Swift中的模式匹配
Swift 作为一门现代语言,除去安全,快速等特性之外,还有个明显有别于其他语言的特性,就是巨量细致入微的语言特性。类似iOS API,初学者觉得繁杂,无从下手,但是熟悉之后,绝对能少写不少代码。
小刀c
2022/09/21
1.8K0
Scala 模式匹配
一个模式匹配包含了一系列备选项,每个都开始于关键字 case。每个备选项都包含了一个模式及一到多个表达式。箭头符号 => 隔开了模式和表达式。
王知无-import_bigdata
2019/03/19
8980
《模式识别与智能计算》基于PCA的模板匹配法
算法流程: 选取各类全体样本组成矩阵X,待测样品 计算协方差矩阵S 根据S的特征值选取适合的矩阵C 使用矩阵C降维 采用模板匹配开始多类别分类 算法实现 PCA降维算法 def pca(x,k=0,percent = 0.9): """ :function: 主成分分析法 :param X: 数据X m*n维 n表示特征个数,m表示数据个数 :param K: K表是要保留的维度 :param percent: 样本所占比例 :return: 返回特征向量
Max超
2020/01/16
7510
less中的匹配模式
首先来看如下的代码,一个 div 元素,分别设置了上下左右的宽度高度和颜色,然后在浏览器中打开发现四个不同的角都是一个小小的三角形如下
程序员 NEO
2023/09/29
2450
less中的匹配模式
朴素的模式匹配算法
子串(又称模式串)的定位操作通常称做串的模式匹配,是串中最重要的操作之一。朴素的匹配方法(BRUTE FORCE 算法,BF 算法)逻辑思路:
用户7737280
2021/11/10
1K0
Lua模式匹配
Lua并不使用POSIX规范的正则表达式[4](也写作regexp)来进行模式匹配。主要的原因出于程序大小方面的考虑:实现一个典型的符合POSIX标准的regexp大概需要4000行代码,这比整个Lua标准库加在一起都大。
sunsky
2020/08/20
1.8K0
模式匹配算法
模式匹配算法: 定义一个主串字符串S="goodgoogle",再定义一个模式串字符串T="google",然后依次遍历主串中的字符,判断,模式串是否在主串中存在,这种模式串的定位操作通常称为串的模式匹配 代码: 1 /** 2 * 朴素的模式匹配算法 3 * @author wydream 4 * 5 */ 6 7 public class OrdinaryModel { 8 9 public static void main(String[] args)
说故事的五公子
2019/09/11
9320
基于OpenCV的直方图匹配
如何为图像生成直方图,如何使直方图相等,最后如何将图像直方图修改为与其他直方图相似。
AI算法与图像处理
2020/12/07
1.4K0
Python的模式匹配库pampy
模式匹配即给定某种模式,用这种模式去检查序列或字符串是否符合这种模式,这种技术在自然语言处理中经常使用。
Python研究所
2022/06/17
6810
4.3 串的模式匹配算法
1、子串的定位操作通常称做串的模式匹配(其中T称为模式串),是各种串处理系统中最重要的操作之一。
小林C语言
2019/07/12
7240
Python匹配方式之xpath,还在用正则吗?一节课带你学会更简单的xpath
  XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。
云飞
2018/09/14
7370
点击加载更多

相似问题

基于节点()包含()内容的Xpath匹配

14

基于属性引用的XPath节点匹配

37

基于匿名的模式匹配

10

基于OR逻辑的模式匹配

20

基于列表长度的匹配模式匹配

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档