我们希望在页面加载中授予用户站点管理员权限,并在finally块中删除它。 我们正在使用sharepoint 2007,实现它的方法是什么。
答案 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
}
})