您的位置:首页 > 其它

WSS3 Elevation of Privilege 替代 用户身份模拟Impersonate 进行权限提升

2007-06-14 00:47 811 查看
正文:

WSS3 中的 Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges 替代 Impersonate 进行权限提升.
好处就是根本不需要在配置文件写些什么用户名密码, 省了麻烦, 加了一定密码泄漏安全, 但是也增加了不安全代码的后门.
RunWithElevatedPrivileges 使用的是你IIS Application的进程池帐户,所以注意安全,嘿嘿.
 
SPSecurity.RunWithElevatedPrivileges(delegate()
{
    // 用系统帐户做操作
});
SPSecurity.RunWithElevatedPrivileges(delegate()
{
    using (SPSite site = new SPSite(SPContext.Current.Site.ID))
    {//注意要new一个, 用SPContext.Current.Site的话,那就是当前帐户的安全级别
       //用系统帐户操作这个site
    }
});
 
照抄MSDN的代码例子:
SPWeb web = SPContext.Current.Web;
SPUser user = web.CurrentUser; // the calling user
// Uses the SHAREPOINT\system creds with the SPUser's identity reference of user
SPSecurity.RunWithElevatedPrivileges(delegate() {
  // Gets a new security context using SHAREPOINT\system
  using (SPSite site = new SPSite(this.Page.Request.Url.ToString())) {
    using (SPWeb thisWeb = site.OpenWeb()) {
      thisWeb.AllowUnsafeUpdates = true;
      SPList theList = thisWeb.Lists[listName];
      SPListItem record = theList.Items.Add();
      record["User"] = user; // calling user
      record.Update(); // uses SHAREPOINT\system
    }
  }
});

原文地址:(http://msdn2.microsoft.com/en-us/library/aa543467.aspx
类别: SharePoint
发布日期: 2007-6-14 20:43
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: