3

SharePoint 2010 ファームを実行しています。サイトコレクション「プロバイダ」へのすべてのアクセスをユーザー グループから削除しました。「プロバイダー」は、ユーザーがログインするデフォルトのサイトコレクションです。「UnsecuredLayoutsPageBase」から継承し、spwebpartmanager を持つマスターページを持つカスタム アクセス拒否ページがあります。

<WebPartPages:SPWebPartManager ID="m" runat="Server" />

「プロバイダー」へのアクセス権を持たないグループのユーザーがログインすると、sharepoint は AccessDeniedPage にリダイレクトされます。ただし、SPWebPartManager (.net リフレクターで確認) は、System.UnauthorizedAccessException: Attempted to perform an illegal operation, as the user login's the users not have permissions. をスローします。

昇格されたアクセス許可で spwebpartmanager を実行する方法はありますか? SPSecurity.RunWithElevatedPrivileges ブロック以外は見つかりませんでしたが、それはユーザー コードで機能します。昇格されたアクセス許可で OTB コードを実行するにはどうすればよいですか? どんな助けでも大歓迎です。ありがとう。

ここにスタックトレースがあります。

System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
   at Microsoft.SharePoint.Utilities.SPUtility.HandleAccessDenied(HttpContext context)
   at Microsoft.SharePoint.Utilities.SPUtility.HandleAccessDenied(Exception ex)
   at Microsoft.SharePoint.Library.SPRequest.OpenWeb(String bstrUrl, String& pbstrServerRelativeUrl, String& pbstrTitle, String& pbstrDescription, String& pbstrTitleResourceId, String& pbstrDescriptionResourceId, Guid& pguidID, String& pbstrRequestAccessEmail, UInt32& pwebVersion, Guid& pguidScopeId, UInt32& pnAuthorID, UInt32& pnLanguage, UInt32& pnLocale, UInt16& pnTimeZone, Boolean& bTime24, Int16& pnCollation, UInt32& pnCollationLCID, Int16& pnCalendarType, Int16& pnAdjustHijriDays, Int16& pnAltCalendarType, Boolean& pbShowWeeks, Int16& pnFirstWeekOfYear, UInt32& pnFirstDayOfWeek, Int16& pnWorkDays, Int16& pnWorkDayStartHour, Int16& pnWorkDayEndHour, Int16& pnMeetingCount, Int32& plFlags, Boolean& bConnectedToPortal, String& pbstrPortalUrl, String& pbstrPortalName, Int32& plWebTemplateId, Int16& pnProvisionConfig, String& pbstrDefaultTheme, String& pbstrDefaultThemeCSSUrl, String& pbstrThemedCssFolderUrl, String& pbstrAlternateCSSUrl, String& pbstrCustomizedCssFileList, String& pbstrCustomJSUrl, String& pbstrAlternateHeaderUrl, String& pbstrMasterUrl, String& pbstrCustomMasterUrl, String& pbstrSiteLogoUrl, String& pbstrSiteLogoDescription, Object& pvarUser, Boolean& pvarIsAuditor, UInt64& ppermMask, Boolean& bUserIsSiteAdmin, Boolean& bHasUniquePerm, Guid& pguidUserInfoListID, Guid& pguidUniqueNavParent, Int32& plSiteFlags, DateTime& pdtLastContentChange, DateTime& pdtLastSecurityChange, String& pbstrWelcomePage, Boolean& pbOverwriteMUICultures, Boolean& pbMUIEnabled, String& pbstrAlternateMUICultures, Int32& puiVersion, Int16& pnClientTag)
   at Microsoft.SharePoint.SPWeb.InitWeb()
   at Microsoft.SharePoint.SPWeb.get_WebTemplate()
   at Microsoft.SharePoint.SPWeb.get_WebTemplateConfiguration()
   at Microsoft.SharePoint.WebControls.ScriptLink.InitJs_Register(Page page)
   at Microsoft.SharePoint.WebControls.ScriptLink.RegisterForControl(Control ctrl, Page page, String name, Boolean localizable, Boolean defer, Boolean loadAfterUI, String language)
   at Microsoft.SharePoint.WebControls.ScriptLink.Register(Page page, String name, Boolean localizable, Boolean defer, Boolean loadAfterUI, String language, String uiVersion)
   at Microsoft.SharePoint.WebControls.ScriptLink.RegisterOnDemand(Page page, String strKey, String strFile, Boolean localizable)
   at Microsoft.SharePoint.WebControls.ScriptLink.OnLoad(EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
4

2 に答える 2

0

ユーザーがログインしていないときに実行されるフォームベースのサインイン ページで、同様の問題が発生しました。

この問題を解決するには、@Page ディレクティブを次のように切り替える必要がありました。

DynamicMasterPageFile="~masterurl/default.master"

MasterPageFile="~/_layouts/simple.master"

原因を特定するのは非常に困難でした。ブロックでオーバーライドPrcessRequest()してから、問題の原因の手がかりを得るために を調べる必要がありました。これは、403 エラーの下に隠され、スタック トレースの奥深くにのみ、上記の問題が見つかったためです。try/catchInnerException/_login/OurLoginPage.aspx

于 2013-06-26T21:12:40.107 に答える
0

Web パーツ マネージャーを含まない別のマスター ページを作成することをお勧めします。

于 2012-12-13T16:15:59.933 に答える