WSS 代码执行的权限提升

概述:

WSS 默认使用身份模拟执行代码,也就是说用当前登录的用户身份执行Web Part或者自定义应用程序的代码访问。在大多数情况下,这种机制能够准确并严格地控制了标准权限的用户他对特定网站资源和敏感数据的访问,这也是我们想要达到的目标。

然而,有时候在一些特殊的场景,你的代码必须执行wss 对象某些受限制的方法,即便请求者是没有这个权限的用户。那么在这种情况下,我们需要提升普通用户执行代码的权限。

实现方法:

SPSecurity.RunWithElevatedPrivileges(delegate()

{

// 需要提升权限执行的代码

});

事例:

获取网站集owner 的 名称 SPSite.Owner.Name

默认是需要网站集管理员权限的用户才能得到,如果没有执行代码权限提升,以一个普通用户去执行SPSite.Owner.Name,系统会报一个”拒绝访问”的错误。

然而执行了如下代码,我们普通权限的用户,也可以成功得访问到SPSite.Owner.Name

SPSite siteColl = SPContext.Current.Site;

SPWeb site = SPContext.Current.Web;

SPSecurity.RunWithElevatedPrivileges(delegate() {

using (SPSite ElevatedsiteColl = new SPSite(siteColl.ID)) {

using (SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb(site.ID))

{

//以SHAREPOINT"System account 系统帐号身份运行

string SiteCollectionOwner = ElevatedsiteColl.Owner.Name;

}

}

});

注意:

在使用SPSecurity.RunWithElevatedPrivileges权限提升的代码里头,必须实例化SPSite,SPWeb对象,而不能使用Microsoft.SharePoint.SPContext.Current属性获得对象,因为那些对象是以当前用户的安全上下文创建的

请使用using方式实例化对象,以便系统能自动执行Dispose,完成资源释放。

上面谈到的这种方式是以最高完全权限的系统管理员帐户去执行代码的,当然我们也可以指定运行代码的帐号:

SPSite siteColl = SPContext.Current.Site;

SPWeb site = SPContext.Current.Web;

SPUser user = site.Users[@"litware\ken"];

SPUserToken userToken = user.UserToken;

SPSecurity.RunWithElevatedPrivileges(delegate() {

using (SPSite ElevatedsiteColl = new SPSite(siteColl.ID, userToken)) {

using (SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb(site.ID))

{        //以litware"ken身份运行
      string SiteCollectionOwner = ElevatedsiteColl.Owner.Name;

}

}

});

这种方式的话,代码就以litware"ken 的权限来运行,不管ken 的权限是高还是低。

转载于:https://www.cnblogs.com/llbofchina/archive/2008/05/24/1206393.html

WSS 代码执行的权限提升相关推荐

  1. wss代码执行的权限提升

    原文:http://msdn2.microsoft.com/en-us/library/bb466220.aspx 在SharePoint中,正常情况下我们在WebPart或后台自定义应用程序中的代码 ...

  2. MOSS中代码运行的权限提升(半摘)

    摘自:http://www.cnblogs.com/netcai/archive/2008/09/11/1288897.html 在编写WebPart或EventHandler时,当前登录网站的是一个 ...

  3. 提升权限_Azure权限提升漏洞

    默认情况下,Azure订阅用户可以访问订阅中的所有存储账户.这些存储账户中包含的Azure Cloud Shell存储文件(Linux主目录)中可能会含有敏感信息.通过修改这些Cloud Shell文 ...

  4. 漏洞复现----37、Apache Unomi 远程代码执行漏洞 (CVE-2020-13942)

    文章目录 一.Apache Unomi简介 二.CVE-2020-11975漏洞 2.1.CVE-2020-11975漏洞代码 2.2.CVE-2020-11975漏洞修复代码 三.CVE-2020- ...

  5. 【burpsuite安全练兵场-服务端7】访问控制漏洞和权限提升-11个实验(全)

    前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...

  6. cve-2016-6662 mysql远程代码执行/权限提升 漏洞

    I. VULNERABILITY MySQL <= 5.7.15 远程代码执行/权限提升 (0day) 5.6.33 5.5.52 克隆mysql的同样受影响, 包括: MariaDB Perc ...

  7. 华硕、技嘉驱动程序曝权限提升、代码执行漏洞

    据外媒BleepingComputer报道,来自华硕(ASUS)和技嘉(GIGABYTE)的四个驱动程序均存在多个漏洞,而攻击者可以利用这些漏洞来提升权限,以及执行任意代码. 报道称,共有7个影响到5 ...

  8. 众至科技:漏洞通告 | 微软10月发布多个安全漏洞;Apache Shiro权限绕过漏洞;Apache Commons存在代码执行漏洞

    微软发布10月多个安全漏洞 1.漏洞概述 2022年10月11日,微软发布了10月安全更新,此次更新修复了包括2个0 day漏洞在内的84个安全漏洞(不包括10月3日修复的12个Microsoft   ...

  9. Js代码执行 变量的值 运算 变量提升

    Js代码执行 Js代码执行前,浏览器会给他(js)一个全局环境,叫window(全局作用域).在window下浏览器找到所有的带var和function的关键字然后给他们分配内存地址.不管你赋值没赋值 ...

最新文章

  1. esxi 6.7 7.0 区别_摩托车国产车和合资车有什么区别?
  2. android wifi定位服务,如何在Android中使用Wifi获取位置?
  3. Scrapy突破反爬虫的限制
  4. csh远程登录服务器,ubuntu远程连接服务器某一个用户(非root用户)出现sh: 1: source: not found...
  5. torch.nn 介绍(部分)
  6. 【几个关于CSS的网站】
  7. 聊天实录:刘静平谈网管员职业规划与技术
  8. J2EE框架DDoS漏洞预警公告
  9. 神州数码c语言笔试题,神州数码软件测试工程师笔试C语言题目详解
  10. mysql怎么设置角色_mysql 用户角色权限表建立
  11. Typescript的应用与思考
  12. java document对象详解
  13. 计算机音乐谱成都.,抖音成都计算器谱子是什么 抖音成都计算器谱子分享
  14. 为什么这么多学生讨厌数学(以及如何解决它)?
  15. Node.js报错:UnhandledPromiseRejectionWarning: Unhandled promise rejection
  16. 一般人我不告诉的bug
  17. docker学习笔记(三)镜像
  18. 电商平台减少服务器性能,电商平台服务器数据安全灾备方案规划.doc
  19. 小米 红米Note(联通3G版)解BL锁教程 申请BootLoader解锁教程
  20. 从公有云到私有云,云原生正在主导数字化转型企业架构

热门文章

  1. 【视觉SLAM14讲】ch3课后题答案
  2. Wireshark网络抓包(三)——网络协议
  3. 企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)
  4. Silverlight的企业应用
  5. 【Smart_Point】C/C++ 中共享指针 shared_ptr
  6. 满足极高读写性能需求的Key-Value数据库
  7. 轻量级简单队列服务HTTPSQS安装与使用
  8. 跨平台PHP调试器设计及使用方法——通信
  9. Windows 7 64位机上搭建Android开发环境
  10. matlab常遇小问题汇总