SharePoint WebPart权限

时间:2009-02-24 19:48:51

标签: security sharepoint permissions

您好我正在为webpart使用SharePoint命名空间,当我尝试使用系统帐户时遇到一些权限错误。有没有办法可以使用已定义的用户而不是系统帐户?

现在我有:

SPUserToken sysToken = SPContext.Current.Site.SystemAccount.UserToken;
using (SPSite site = new SPSite(_SPSite, sysToken))

我希望能够在域名而不是系统帐户上使用帐户,感谢任何建议。

3 个答案:

答案 0 :(得分:2)

根据以下博客文章,您可能需要使用RunWithElevatedPermissions来访问系统帐户:

http://solutionizing.net/2009/01/06/elegant-spsite-elevation/

答案 1 :(得分:1)

您可以使用SPUserCollection

SPContext.Current.Site.RootWeb.AllUsers

获取网站上的所有用户,并从那里获取SPUser。获得SPUser后,即可获得UserToken。

答案 2 :(得分:1)

你想做什么?如果您不使用令牌,将使用与当前用户相同的权限打开Web

/* runs as user requesting the web part */
SPSite site = SPContext.Current.Web.site 

或者您可以将其包装在 RunWithElevatedPrivileges 委托

/* runs with admin privileges */         
SPSecurity.RunWithElevatedPrivileges(
   delegate()
   {
      using (SPSite site = new SPSite(SPContext.Current.Web.Site.Url))
      {
        //do stuff
      }
   }
);