SharePoint Users&AllUsers&SiteUsers

注意: 本文讨论基于SharePoint 2010, 其次文章比较罗嗦, 大神直接可以PASS.

序言

大家都知道SPWeb中有三个属性可以获取相关用户集合:

SPWeb.Users Gets the collection of user objects that are explicitly assigned permissions in the website.
SPWeb.AllUsers Gets the collection of user objects that represents all users who are either members of the site or who have browsed to the site as authenticated members of a domain group in the site.
SPWeb.SiteUsers Gets the collection of all users that belong to the site collection.

看文字描述大家都能理解, 但是具体系统中哪些用户或者用户组存储在里面可能还有点迷糊. 下面我们通过几个实验来分别看看里面是怎么样的.

第一回

当我们新建一个网站集的时候, 一般会将Domain中的Users组直接赋予网站集只读的权限(如下图所示).

这时候我们来看看这三个属性中的值是怎么样的:

此时, SPWeb.Users中没有数据, SPWeb.AllUsers和SPWeb.SiteUsers中的数量是一致的.

第二回

这时候当多个用户去访问该站点的时候, 又会怎么样呢?

此时, 跟"第一回"的情况类似, 访问网站集的用户都出现在SPWeb.AllUsers和SPWeb.SiteUsers中, 而SPWeb.Users中还是没有数据.

第三回

当对某个用户自定义权限或者新建一个SharePoint自定义用户组并且赋予某个用户权限的时候, 又会怎么样呢?

这时候我们发现"SPWeb.Users"的属性值已经发生了变化, 同样该用户出现在SPWeb.AllUsers和SPWeb.SiteUsers中.

SPWeb.EnsureUser

当通过EnsureUser方法将某个用户加到网站集的时候:

这时候我们会发现SPWeb.SiteUsers相比SPWeb.AllUsers多了一个用户.

结束

SPWeb.SiteUsers中存储的数据是最多的, 其次是SPWeb.AllUsers, 最后是SPWeb.Users. 大家觉得呢?

enjoy SharePoint

时间: 2024-08-24 22:13:19

SharePoint Users&AllUsers&SiteUsers的相关文章

设置SharePoint站点库文件夹安全组或AD用户权限脚本

我们直接拿一个应用举例: 为"部门共享文档库"里面的"工会"文件夹添加"domain\lixs"的"只读"权限. 代码内容: ############################################ #Author:Lixiaosong #Email:[email protected];[email protected] #For:设置SharePoint库文件夹安全组权限 #Version:1.0 2015年

sharepoint 2013:活动目录迁移用户后,在sharepoint中move 用户 powershell

Get-SPUser -web http://wfe1  | fl    (查看该网站集中的账户) $user = Get-SPUser -web http://wfe1 -Identity 18   (将id为18的账户赋予变量$user ,不用变量下面一条语句会失败,18也可以用用户名取代) Move-SPUser -IgnoreSID -Identity $user -NewAlias 'test\sale02'   (将该账户迁移为新账户,可以在同一个域中,也可以不同域) 该操作在web

sharepoint 2013 修改某些显示名,email和活动目录不一致的账户 powershell

#该脚本修改某些显示名,email和活动目录不一致的账户Add-PSSnapin Microsoft.SharePoint.PowerShell $ConfirmPreference = 'None'  #关闭确认提示 $filePath="c:\file\" $allUsers=get-content C:\file\user.txt  -Encoding UTF8                   #从文件中读取需要迁移的账户,每一行包含账户和新的显示名称,新的email地址,字

sharepoint 修改用户和组 display name 和 email地址 C# 代码

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Microsoft.SharePoint;using System.Web;using Microsoft.SharePoint.Administration;using System.IO; namespace ConsoleApplication1{    class Program    {        stati

用SharePoint 实现请假管理功能

用SharePoint 实现请假管理功能 分类: sharepoint20102013-12-07 20:27 196人阅读 评论(0) 收藏 举报 转:http://www.cr173.com/html/15518_1.html “请假管理”应用,应该算是 SharePoint 的“Hello World!”.川菜里面的鱼香肉丝.粤菜里面的蛋炒饭 ...吧? 怎么样才能做出简易.实用的请假管理,一直都是都是一个问题.完全 code free 不写代码是搞不出来的,完全写代码实现的话又何必用 S

SharePoint 2013 Odata 常用实例和基本操作

SharePoint2013Odata常用实例基本操作 本文讲述SharePoint 2013 Odata 常用实例和基本操作. Open Data Protocol (OData)是一个基于Rest风格的数据服务,同过这个服务可以使用同一的URI定位到具体的资源(文件和记录等),从而使得这些资源可以使用HTTP请求进行增删改查,它定义了一系列的规则,使得资源更容易被定位和操作. 首先看一下OData定义的URI结构: 那么相对SharePoint 2013,一个简单的实例为: http://m

Windows 商店应用中使用 SharePoint REST API

前面一篇我们介绍了 Office 365 REST API 的官方工具的使用,本篇我们来看一下 SharePoint REST API 本身的描述.结构和使用方法,以及一些使用经验. 首先来看看SharePoint REST API 的概述: REST API 服务是在 SharePoint 2013 中被引入的,官方认为 REST API 服务可以媲美于现有的 SharePoint 客户端对象模型.开发人员可以使用任何支持 REST Web 请求的技术(C#,javascript,java,o

[sharepoint]文档库,文件夹授权

写在前面 在项目中用到了文档库授权的方法,这里将查询到的方式总结一下. 涉及到的方法 在逻辑中用到的方法. /// <summary> /// 获取sharepoint站点角色定义 rest api /// </summary> /// <param name="hostWebUrl"></param> /// <param name="strAPI"></param> /// <para

SharePoint如何模拟用户

try { SPSecurity.RunWithElevatedPrivileges(delegate() //用此方法模拟管理员账户运行此事件处理程序 { SPWeb web = SPContext.Current.Web; //此时用户为sharepoint\system //Response.Write("用户为:" + web.CurrentUser); web.AllowUnsafeUpdates = true; //获取到要模拟的用户的token SPUser user =