1

ユーザーがリストにアクセスできないように制限したい。そのリストにアクセスするカスタム Web パーツがあります。しかし、アクセスを制限すると、コードもアクセスできず、例外がスローされます。

ユーザーがブラウザを介してリストにアクセスできないが、ユーザーがアクセスしたWebパーツはアクセスできるようにする方法はありますか?

4

1 に答える 1

1

はい、システム アカウントで含まれているサイト コレクションを開くのが最善の方法です。

SPWeb ctxWeb = SPContext.Current.Web;
using (SPSite adminSite= new SPSite(ctxWeb.Site.ID, SPUserToken.SystemAccount))
{  
  using (SPWeb adminWeb = adminSite.OpenWeb(ctxWeb.ID))
  {
    SPList adminList = adminWeb.Lists["TheRestrictedList"]; 
  } 
}

特定のユーザー トークンで開かれたサイト コレクションから取得されたすべてのオブジェクトは、特定のユーザーが要素に直接アクセスしているように動作します。

システム アカウント トークンを使用して を開いているためSPSite、ログインしているユーザーに関係なく、オブジェクトを完全に制御できます。

于 2012-06-12T12:40:48.290 に答える