Moss2007 提升代码的运行权限,实现模拟管理员身份的功能

 

 

注释:  delegate() {}内的的代码必须重新初始化相应的对象SPSite, SPWeb,这时候即使在提升权限的范围内运行,得到的是管理员登录帐号。

SPSecurity.RunWithElevatedPrivileges( delegate() {

 
// 此处显示的是要在提升权限的情况下运行的代码。

 
// 该代码段在 SHAREPOINT/SYSTEM 帐户下运行。

}
);

//例 

SPSecurity.RunWithElevatedPrivileges(
           
delegate() 
    
{
        
using (SPSite ElevatedsiteColl = new SPSite("http://xxxx:xx"))//获得spsite;
          {
              
using (SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb())//获得spweb;
               {
                 
string SiteCollectionOwner = ElevatedsiteColl.Owner.Name;
                 
string Visits = ElevatedsiteColl.Usage.Visits.ToString();
                 
string RootAuditEntries =ElevatedSite.RootFolder.Audit.GetEntries().Count.ToString();
                        }

                    }
 
 }
);

在Sharepoint 2010 客户端对象模型中,也有加权限的方法,但据说在silverlight中不管用,如果谁知道在SilverLight中提升权限的方法请告知,万分感谢!

ClientContext client = new ClientContext("Site Url"); 
client.Credentials = new System.Net.NetworkCredential([用户名],[密码],[域名]); 
///do everything with full control
posted on 2008-06-25 17:15  寂寞的DBOY  阅读(1413)  评论(5编辑  收藏  举报