2012-04-30 14 views

答えて

2

、私はSystemAccountSPSiteのインスタンスを推薦する:

SPSite site = web.Site; 
Guid id = web.ID; 
SPUtility.ValidateFormDigest(); 
using (SPSite systemSite = new SPSite(site.ID, site.SystemAccount.UserToken)) 
{ 
    using (SPWeb systemWeb = systemSite.OpenWeb(id)) 
    { 
     // perform as site administrator 
    } 
} 
+0

は がライン のSPSiteサイト= this.Web.Site以下にコンパイルエラーの上になってのWeb 'の定義が含まれていません。 私に時間を割いてくれてありがとう! – Rushikesh

+0

元のSPWebがプロパティではなく変数であるようにコードを変更しました。いずれにしても、あなたの状況を判断するにはSPWebインスタンスが必要です。 –

0

私はあなたのコードに昇格した権限の下で実行されていることをお勧めします。これにより、より高い権限が一時的に実行されるコードが提供されます。サイトを開いて、このデリゲートの下にWebオブジェクトとリストオブジェクトが開かれていることを確認してください。 MSDN articleと下記のサンプルを参照してください。

SPSecurity.RunWithElevatedPrivileges(delegate() 
{ 
    using (SPSite site = new SPSite(web.Site.ID)) 
    { 
    // implementation details omitted 
    } 
}) 
関連する問題