您好我正在为webpart使用SharePoint命名空间,当我尝试使用系统帐户时遇到一些权限错误。有没有办法可以使用已定义的用户而不是系统帐户?
现在我有:
SPUserToken sysToken = SPContext.Current.Site.SystemAccount.UserToken;
using (SPSite site = new SPSite(_SPSite, sysToken))
我希望能够在域名而不是系统帐户上使用帐户,感谢任何建议。
答案 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
}
}
);