特权提升

上次修改时间: 2010年4月7日

适用范围: SharePoint Foundation 2010

特权提升是 Windows SharePoint Services 3.0 中增加的一项功能,使您能够使用更高的特权级别在代码中以编程方式执行操作。利用 SPSecurity.RunWithElevatedPrivileges 方法,您可以向在帐户上下文中运行一部分代码的委托提供高于当前用户的特权。

RunWithElevatedPrivileges 的标准用法是:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    // Do things by assuming the permission of the "system account".
});

通常,若要在 SharePoint 中执行操作,您必须获取新的 SPSite 对象才能使更改生效。例如:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    using (SPSite site = new SPSite(web.Site.ID))
    {
       // Do things by assuming the permission of the "system account".
    }
});

尽管特权提升提供了一种用于管理安全性的有效方法,但是应谨慎使用。不应对具有低特权的用户公开直接、不受控制的机制,以避开为他们授予的权限。

重要注释重要信息

如果传递给 RunWithElevatedPrivileges 的方法包含任何写入操作,则调用 RunWithElevatedPrivileges 之前,应该调用 SPUtility.ValidateFormDigest()SPWeb.ValidateFormDigest()

请参阅

概念

SharePoint 基于声明的标识