Sharepoint学习笔记—error处理-- The user does not exist or is not unique.

 看到网上不少人遇到过这种类似的错误,而产生这种错误的原因也有多种,我产生此错误的背景是在试图通过ECMAscript对象模型把一个User添加到某个指定的Group中时遇到的。
        

   问题1.当我试图把一个User添加到Sharepoint的某个指定的Group,而这个User已经在Site Collection中存在,在此背景下我得到此错误信息。
   问题2.如果我试图把一个在Site Collection中不存在,而在AD中存在的User添加到Sharepoint的某个指定Group中时,这种操作是肯定不能成功的。因为微软的MSDN中明确指出了只能添加已经在Site Collection中存在的AD Users。
    我的解决步骤如下:
一、检查关于用户设置信息的代码是否有问题。
    我原来的代码如下:   

复制代码

function addUserToSharePointGroup(groupID) {

        //var clientContext = new SP.ClientContext(siteUrl);
        var clientContext = new SP.ClientContext.get_current();
        var collGroup = clientContext.get_web().get_siteGroups();
        var oGroup = collGroup.getById(groupID);
        var userCreationInfo = new SP.UserCreationInformation();
        userCreationInfo.set_email('help@star.com.cn');
        userCreationInfo.set_loginName('help');
        userCreationInfo.set_title('help');
        this.oUser = oGroup.get_users().add(userCreationInfo);  //add user into group

        var userInfo = '\nUser: ' + oUser.get_title() +
            '\nEmail: ' + oUser.get_email() +
            '\nLogin Name: ' + oUser.get_loginName();

        alert(userInfo);
        clientContext.load(oUser);
        clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededaddUserToSharePointGroup),
        Function.createDelegate(this, this.onQueryFailedaddUserToSharePointGroup));
    }

    function onQuerySucceededaddUserToSharePointGroup() {

        alert(this.oUser.get_title() + " added.");
    }

    function onQueryFailedaddUserToSharePointGroup(sender, args) {

        alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    }

复制代码

    此代码存在问题主要在userCreateInfo代码:

    1、set_loginName设置项应该加入此用户所在的域 DOMAIN 
    2、DOMAIN后面应该用"\\",否则在实际生成的User时就会把DOMAIN与User直接连接起来(如:DOMAINuser),这样的用户当然在AD中是不存在的
   因此,在代码设置中,针对User的Information应该符合真正存在的那个User在AD Account中的设置情况,所以在上述代码中你可以看到我加入了一个alert来显示设置的信息,便于你在查错时与AD中此user的对应信息进行比较。

  针对上面的问题修改后的代码如下:

复制代码

function addUserToSharePointGroup(groupID) {

        //var clientContext = new SP.ClientContext(siteUrl);
        var clientContext = new SP.ClientContext.get_current();
        var collGroup = clientContext.get_web().get_siteGroups();
        var oGroup = collGroup.getById(groupID);
        var userCreationInfo = new SP.UserCreationInformation();
        userCreationInfo.set_email('help@star.com.cn');
        userCreationInfo.set_loginName('STAR\\help');
        userCreationInfo.set_title('help');
        this.oUser = oGroup.get_users().add(userCreationInfo);  //add user into group

        var userInfo = '\nUser: ' + oUser.get_title() +
            '\nEmail: ' + oUser.get_email() +
            '\nLogin Name: ' + oUser.get_loginName();

        alert(userInfo);
        clientContext.load(oUser);
        clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededaddUserToSharePointGroup),
        Function.createDelegate(this, this.onQueryFailedaddUserToSharePointGroup));
    }

    function onQuerySucceededaddUserToSharePointGroup() {

        alert(this.oUser.get_title() + " added.");
    }

    function onQueryFailedaddUserToSharePointGroup(sender, args) {

        alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    }

复制代码

 

 二、检查Windows Server的 Domain member: Digitally encrypt or sign secure channel data (always) 安全设置项。
    如果上面的排错没有解决The user does not exist or is not unique报错,那么就进入这一步进行偿试。

    由于我的开发环境是Server 2008 R2,认证方式采用的是Kerberos(据说这点很重要,因为如果采用的是windows NTLM方式,则不会存在Application与AD环境的信息沟通问题),据说Windows Server 2008 (或 R2)中有某个Feature不支持Sharepoint上运行的Application,由此可能会造成AD信息交换出问题。
    解决的办法就是设置Domain member: Digitally encrypt or sign secure channel data (always) 这个安全项。这个选项默认是开启的,我们需要手工停止它。方法是在服务器上 Start -> Run -> type gpedit.msc.
进行设置界面后,依序打开
Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options.在Security Options的右边你可以看到此选项,请手工将其停止,然后重启服务器。

 

  需要指明的是,此处我只列出了上述两种解决思路,如果上面的情况均未解决你遇到的问题,你就需要针对你自己的特定情况,捕获可能的相关错误信息来解决问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Knockout学习笔记之二($root,$parent及$data的区别)

以下是我从Google上找到的一个例子,非常生动形象,我修改了部分代码,具体内容如下: 对于$root 与$parent的区别: $root refers to the view model applied to the DOM with ko.applyBindings;译:$root 是指…

GitHub 学生认证,申请 GitHub 学生包

GitHub 面对学生推出了学生认证服务,通过认证后就可以得到学生包,学生包大概有十几项优惠,包括 DATADOG Pro 帐户、免费两年的10台服务器,Icons8 3个月的带图标,照片,插图和音乐订阅服务、JETBRAINS 专业桌…

Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告

在学习 Python3 爬虫关系型数据库储存时,利用 pymysql 连接 MySQL 建表,测试用的代码如下,第一句 SQL 用于获取当前 MySQL 的版本信息,第二句 SQL 执行创建 spiders 数据库的操作,如果程序代码正确,将会输出…

完美解决 bash: hexo: command not found

背景介绍:有好几天没动过 Hexo 博客了,今天准备更新的时候输入 hexo s,报错 bash: hexo: command not found,这是啥情况?以前都好好的,想了一下,大概是这几天折腾各种 Python 库的原因&#xff…

Sharepoin学习笔记 —架构系列--02 Sharepoint的处理(Process)与执行模型(Trust Model) 1

Sharepoint210有四种执行模型: 1、完全信任执行模型(Full Trust) 2、Bin/CAS 执行模型 (1与2都属于场解决方案) 3、沙盒执行模型(Sand Box) 4、 混合执行方法(Hybrid Approach) Sharepoint最简单的处理模型就是一个完整的Asp.net应…

Python3 爬虫学习笔记 C10【数据储存系列 — MySQL】

Python3 爬虫学习笔记第十章 —— 【数据储存系列 — MySQL】文章目录【10.1】MySQL 基本操作语句数据库操作表操作表的结构表的数据【10.2】Python 连接 MySQL【10.3】创建表【10.4】插入数据【10.5】更新数据【10.6】删除数据【10.7】查询数据【10.8】实战训练 — 爬取CSDN博…

Sharepoin学习笔记—架构系列--03 Sharepoint的处理(Process)与执行模型(Trust Model) 2

上文我们了解了一个外部Http Request进入IIS 工作进程(W3WP)的处理与执行信任模型,这个阶段是Sharepoint的四种执行模型都必须经过的处理阶段,其中Sharepoint场解决方案与任何 ASP.NET 应用程序一样就是在 IIS 工作进程(w3wp)中运行的,所以上…

Python3 爬虫学习笔记 C11【数据储存系列 — MongoDB】

Python3 爬虫学习笔记第十一章 —— 【数据储存系列 — MongoDB】文章目录【11.1】关于 MongoDB【11.2】MongoDB 基本操作语句【11.3】连接 MongoDB【11.4】指定数据库【11.5】指定集合【11.6】插入数据【11.6】数据查询【11.7】数据计数【11.8】数据排序【11.9】数据偏移【11.…

Sharepoin学习笔记—架构系列--04 Sharepoint的四种执行模型 1

Sharepoint210有四种执行模型 1、完全信任执行模型(Full Trust) 2、Bin/CAS 执行模型 (1与2都属于场解决方案) 3、沙盒执行模型(Sand Box) 4、 混合执行方法 (Hybrid Approach) 下面分别来看看它们是怎么回事 一、场解决方案 场解决方案是在 Share…

Python3 爬虫学习笔记 C12【验证码对抗系列 — 图形验证码】

Python3 爬虫学习笔记第十二章 —— 【验证码对抗系列 — 图形验证码】文章目录【12.1】关于普通图形验证码【12.2】tesserocr 库识别验证码【12.3】pytesseract 库识别验证码【12.4】验证码处理【12.5】tesserocr 与 pytesserocr 相关资料【12.1】关于普通图形验证码 普通图形…

Sharepoin学习笔记—架构系列--05 Sharepoint的四种执行模型 2

上一篇我们看了场解决方案与沙盒方案两种执行模型,其中场解决方案包括有完全信任方式与Bin/CAS方式两种,这里让我们继续来看看最后一个执行模型,即混合模型(或混合模式)。 三、混合模式(hybrid approaches) 所谓混合模…

Python3 爬虫学习笔记 C13【验证码对抗系列 — 滑动验证码】

Python3 爬虫学习笔记第十三章 —— 【验证码对抗系列 — 滑动验证码】文章目录【13.1】关于滑动验证码【13.2】滑动验证码攻克思路【13.3】模拟登录 bilibili — 总体思路【13.4】主函数【13.5】初始化函数【13.6】登录函数【13.7】验证码元素查找函数【13.8】元素可见性设置函…

Sharepoin学习笔记—架构系列—06 Sharepoint服务(Services)与服务应用程序框架(Service Application Framework) 1

Sharepoint服务是Sharepoint的重要组成,可以说Sharepoint的许多网站功能都是基于这些服务构架起来的。这里把Sharepoint服务的相关要点总结一下。 1、什么是 SharePoint 服务? SharePoint 服务是一项 IT 服务,它是运行在后台,为调…

Python3 爬虫学习笔记 C14【验证码对抗系列 — 点触验证码】

Python3 爬虫学习笔记第十四章 —— 【验证码对抗系列 — 点触验证码】文章目录【14.1】关于点触验证码【14.2】点触验证码攻克思路【14.3】模拟登录 12306 — 总体思路【14.4】主函数【14.5】初始化函数【14.6】破解入口函数【14.7】账号密码输入函数【14.8】页面截图函数【14…

Sharepoin学习笔记—架构系列—07nSharepoint服务(Services)与服务应用程序框架(Service Application Framework) 2

上一篇我们以问答的方式明确了Sharepoint服务的一些概念,这里我们重点来看两个方面:Sharepoint服务器构架对象模型以及Sharepoint 服务应用程序的某些拓扑结构 一、Sharepoint服务器构架对象模型 转存失败重新上传取消 二、Sharepoint 服务应用程序的某些拓扑结…

Sharepoin学习笔记—架构系列--08 Sharepoint的数据模型(DataModel)、数据管理(Data Management)与查询(Query System)

Sharepoint Foundation中的首要数据结构就是列表(List), 每个List属于某种List Type,与此类似,每个列表中的列(Column)属于某种FieldType,而每一条列表记录(List Item)属于某种Content Type.至于外部数据(External Data),即来自于…

执行 redis-dump 报错:ERROR (Errno::ENOENT): No such file or directory - ps -o rss= -p xxxxx

redis-dump 命令用于 Redis 数据的导出,执行该命令时报错如下: C:\Users\Lenovo>redis-dump -u 127.0.0.1:6379 ERROR (Errno::ENOENT): No such file or directory - ps -o rss -p 3944解决方法:找到 Ruby 安装目录下的 dump.rb 文件&a…

Sharepoint学习笔记 –架构系列—09 Sharepoint的服务器端对象模型(Server Object Model) 1.物理对象层次结构

关于Sharepoint的服务器端对象模型的内容很庞大很繁杂,而事实上,我们在这里只把最关键的对象梳理一下,我们会从三个体系来大致描述它们。 这三个体系分别是: 1、物理对象层次结构(Physical Objects Hierarchy) 2、内容层次结构(Co…

执行 redis-dump 报错:Error connecting to Redis on localhost:6379 (Redis::TimeoutError)

拿本地的 Redis 做测试,运行在 6379 端口上,使用 redis-dump -u localhost:6379 命令用于数据的导出,执行该命令时报错如下: C:\Users\Lenovo>redis-dump -u localhost:6379 Error connecting to Redis on localhost:6379 (Re…

Sharepoint学习笔记 –架构系列—10 Sharepoint的服务器端对象模型(Server Object Model) 2.内容层次结构

Sharepoint的内容层次结构(Content Hierarchy)包括表示可发布数据项(publishable items),如列表项的类,还包括表示嵌套的数据容器(nested containers of data),如列表、内容数据库、网站、网站集以及称为"Web 应用程序"…