8

Mysiteルートサイトの「ユーザー情報一覧」に一般ユーザーがアクセスできるようにしたい。「RunWithElevatedPrivileges」メソッドを使用しています。まだアクセス拒否エラーをスローしています。たとえば、mysite のルート サイト コレクションは " http://network.test.com " です。ユーザーは、このサイト コレクションのユーザー情報リストを評価する必要があります。彼はどうやってそれにアクセスできますか?

 SPSecurity.RunWithElevatedPrivileges(delegate
 {
   using (SPSite site = new SPSite(SPContext.Current.Web.Site.ID))
   {

   ServerContext sc = ServerContext.Current;
   UserProfileManager upm = new UserProfileManager(sc);
   UserProfile up = null;
   //get current user's profile (visitor)
   if (upm.UserExists(SPContext.Current.Web.CurrentUser.LoginName))
   {
       up =upm.GetUserProfile(SPContext.Current.Web.CurrentUser.LoginName);

      SPWeb web = SPContext.Current.Web;
      SPList userInformationList = web.Lists["User Information List"];
4

3 に答える 3

6

SPContext.CurrentRunWithelevatedPrivileges昇格されたコンテキストの外で実行されます。詳細については、このブログ投稿を参照してください。

于 2010-06-16T06:55:17.897 に答える
6

SPWeb を SPContext.Current.Web に設定していますが、これには昇格された特権がありません。デリゲート内で作成された SPSites から作成された SPWeb のみが昇格されます。

だからあなたは交換する必要があります

SPWeb web = SPContext.Current.Web;

SPWeb web = site.OpenWeb(SPContext.Current.Web.ID);
于 2010-06-16T06:57:53.757 に答える
-1

SPWeb を SPContext.Current.Web に設定していますが、これには昇格された特権がありません。この投稿を参照してください:

于 2014-06-18T09:42:59.080 に答える