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/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