如何以编程方式提供当前用户站点管理员权限

时间:2012-04-30 19:02:11

标签: sharepoint sharepoint-2007

我们希望在页面加载中授予用户站点管理员权限,并在finally块中删除它。 我们正在使用sharepoint 2007,实现它的方法是什么。

2 个答案:

答案 0 :(得分:2)

我建议不要暂时授予用户访问权限,而是建议使用SPSite实例化SystemAccount

SPSite site = web.Site;
Guid id = web.ID;
SPUtility.ValidateFormDigest();
using (SPSite systemSite = new SPSite(site.ID, site.SystemAccount.UserToken))
{
    using (SPWeb systemWeb = systemSite.OpenWeb(id))
    {
        // perform as site administrator
    }
}

答案 1 :(得分:0)

我建议您在代码中使用提升权限运行。这将为您的代码临时执行更高的权限。确保打开您的站点,在此委托下打开Web和列表对象。请参阅MSDN article和下面的示例。

SPSecurity.RunWithElevatedPrivileges(delegate()
{
   using (SPSite site = new SPSite(web.Site.ID))
   {
     // implementation details omitted
   }
})