2009-02-24 104 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 
     } 
    } 
);