سؤال

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

محاولتي الأولى في ذلك كان وضع ذلك في جهاز استقبال حدث في القائمة للتأكد من تحديث الأذونات عند إضافة العنصر. أضع العنصر في حدث العنصر المضافة منذ ذلك الحين خلال العنصر، لا يمكنني الحصول على وسيلة لرفع الامتيازات والحصول على مثيل مرتفع من العنصر (الذي أعرفه). تسبب ذلك في تأخير غير مرغوب فيه، على الرغم من أنه قصير، بين الوقت الذي تم إنشاؤه والوقت الذي تم فيه تشغيل التعليمات البرمجية بالفعل.

الشيء التالي الذي حاولت أن أضع أذونات العنصر في النموذج مباشرة بعد إنشاء العنصر منذ ذلك الحين، ثم لدي معرف للعنصر حتى أتمكن من استرداده في سياق مرتفع (أريد أن يكون العنصر تم إنشاؤها تحت سياق المستخدم الحالي). هذا يمثل مشكلة لأنه بمجرد تنفيذ هذا النهج، حوالي 50٪ من الوقت نحصل على خطأ في سير عمل يعمل على إنشاء عنصر تقول: "فشل في بدء تشغيل سير العمل. لا يمكن لسير العمل الوصول إلى العنصر الذي تم تطبيقه على ". (ربما تجدر الإشارة إلى أن هذا سير عمل Nintex) - أفترض أن المشكلة ترجع إلى بعض شرط السباق حيث في منتصف العنصر. update () لتعيين الأذونات، يحاول سير العمل البدء في نفس الوقت.

من الناحية المثالية، أود أن أكون قادرا على تحديث الأذونات في تحديث العنصر الأول جدا (إنشاء) أو أثناء حدث ItemAdding، لكنني لست متأكدا من كيفية القيام بذلك دون رفع العملية برمتها بحيث يتم إنشاء العنصر بالكامل حساب النظام وليس المستخدم الذي قام بالفعل بإنشاء العنصر بالفعل.

ما هي الخيارات التي أتاحت لي؟

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

المحلول

الطريقة التي استخدمتها في الأصل باستخدام الحدث المكلفة صحيحة.هناك خطوة واحدة فقط مفقودة - يمكنك تشغيل الحدث على الفور عن طريق تغييره لتشغيله بشكل متزامن بدلا من غير متزامن.

تفاصيل كيفية تبديل الوضع المتزامن هنا: http://blogs.technet.com/b/stefan_gossner/archive 21/11/10/using-synchronouous-aot-after-COT-أحداث-EG-INDUMPDATED في SharePoint-2010.aspx

نصائح أخرى

نهج واحد يمكنك المحاولة، هو تمكين موافقة المحتوى على تلك القائمة.سيعني ذلك، كلما تم إنشاء عنصر جديد، سيبقى في في انتظار الحالة حتى تتم الموافقة عليه.عندما يكون العنصر في حالة معلقة، فإن المنشئ فقط للعنصر والأشخاص الذين لديهم أذونات لإدارة القوائم والمكتبات يمكن أن يروا ذلك، شريطة أن تختار الإعداد التالي: من يجب أن يرى مسودة العناصر في مكتبة المستند هذه؟-> فقط المستخدمين الذين يمكنهم الموافقة على العناصر (ومؤلف البند). بعد ذلك، يمكنك استخدام الحدث المكلفة لتغيير أذونات الملف ووضع أيضا في حالة المعتمدة .

آمل أن يساعدك ذلك في السيناريو الخاص بك.

يجب أن تكون قادرا على انتحال شخصية المستخدم التي أنشأ العنصر أو جعل التغيير في التعليمات البرمجية الخاصة بك. giveacodicetagpre.

انتقال الانتحال بالامتيازات

ما قمت به للتغلب على هذه المشكلة هو بدلا من بدء تشغيل سير العمل تلقائيا عبر إعدادات سير العمل، نحن "يدويا" يعبد سير العمل عبر الرمز بعد تحديث الأذونات. giveacodicetagpre.

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