2009-02-24 108 views
0

嗨我正在使用SharePoint命名空间作为Web部件,并且在尝试使用系统帐户时遇到一些权限错误。有没有一种方法可以使用定义的用户而不是系统帐户?SharePoint WebPart权限

现在我有:

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

我希望能够在该站点,而不是系统帐户使用的帐户,感谢您的任何意见。

回答

1

可以使用SPUserCollection

SPContext.Current.Site.RootWeb.AllUsers 

让所有网站上的用户,并从那里得到SPUser。一旦你有SPUser你可以得到UserToken。

1

你到底想干什么?如果你不使用令牌,网络将具有相同权限打开当前用户

/* 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 
     } 
    } 
);