ユーザーがリストにアクセスできないように制限したい。そのリストにアクセスするカスタム Web パーツがあります。しかし、アクセスを制限すると、コードもアクセスできず、例外がスローされます。
ユーザーがブラウザを介してリストにアクセスできないが、ユーザーがアクセスしたWebパーツはアクセスできるようにする方法はありますか?
ユーザーがリストにアクセスできないように制限したい。そのリストにアクセスするカスタム Web パーツがあります。しかし、アクセスを制限すると、コードもアクセスできず、例外がスローされます。
ユーザーがブラウザを介してリストにアクセスできないが、ユーザーがアクセスしたWebパーツはアクセスできるようにする方法はありますか?
はい、システム アカウントで含まれているサイト コレクションを開くのが最善の方法です。
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
、ログインしているユーザーに関係なく、オブジェクトを完全に制御できます。