سؤال

لقد قمت بإنشاء جزء ويب يقوم بتجمع معلومات من مكتبة المستندات. إنه يعمل بشكل جيد تحت تطبيق الويب "المسؤول" (لدينا تطبيقان ويب: موقع المسؤول للمستخدمين غير المجهولين؛ موقع WWW للمستخدمين المجهولين. تشترك هذه المواقع في نفس المحتوى).

عندما أفتح موقع WWW، فإنه يعرض جزء ويب فارغ عندما لا يشير إلى مكتبة المستندات. ومع ذلك، عندما يرتبط بمكتبة المستندات، فإنه يظهر 401 غير مصرح به. يمكن استفسار مكتبة المستندات نفسها بنجاح بواسطة CQWP من مواقع المشرف و WWW.

أي مساعدة؟

شكرا.

هل كانت مفيدة؟

المحلول

تم حلها.

يبدو أن كائن SPWEB تم تعامله من خاصية SPSITE CODETS SITECOOLLECTION الخاصة ب Allwebs يؤدي فحص الأمان لكل كائن ويب.

إذا لم يكن لدى المستخدم إذن بكائن ويب معين، فهو يلقي خطأ في المستوى العلوي الذي ينتج عنه 401 صفحة.

باستخدام امتيازات مرتفعة حل المشكلة.

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    foreach (SPWeb s in siteCollection.AllWebs)
    {...}
});

MSDN مقالة:http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx.

نصائح أخرى

كن حذرا على الجري مع امتيازات مرتفعة. يعرف SharePoint الذي يقوم بتقديم طلب ويمكنه ضبط النتائج بناء على امتيازات هذا المستخدم. الجري مع امتيازات مرتفعة يمكن أن يعود نتائج غير مخصصة لهذا الشخص.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top