سؤال

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

المشكلة هي أنه يبدو مستحيلا. في الواقع يبدو أن Createpersonalsite مكرسة لتطبيق الإدارة والذي يمكن الوصول إلى قاعدة بيانات محتوى MySite ك DBowner. عندما أحاول أن أفعل ذلك مع سياق المستخدم الحالي الذي ينقر على الزر، لدي وصول تم رفضه من SQL Server يخبرني أن حساب الخدمة يتصل بمحتوى MySite لا يمكن الوصول إلى DB. وهو أمر طبيعي نظرا لأن تطبيق الويب MySite يعمل مع حساب تجمع تطبيق آخر من الموقع الذي ينقر عليه المستخدم الزر.

لذلك سؤالي هو كيف يمكنني القيام به لإنشاء موقع شخصي متصل كمستخدم عادي في تطبيق ويب مختلف عن موقع الخليط؟ فكرت في إنشاء طلب ويب إلى مجموعة موقع MySitehost + "/_layouts/mysite.aspx" ولكن هذا القذرة للغاية. آخر يمكنني إعطاء الوصول DBowner إلى محتوى موقعي DB إلى حساب تجمع التطبيقات لتطبيق الويب حيث يقوم المستخدم بالنقر فوق الزر ... ولكنه آمن ويمكن القيام به دون مشاكل؟

شكرا لك.

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

المحلول

حتى ترغب في بدء المستخدم، ولكن ليس كجزء من العملية الافتراضية الموجودة من خلال زيارة صفحة /_layouts/mysite.aspx؟

من المرجح أن أستخدم الزر لاستردادها إلى صفحة التوفير التي تنفذ بالطبع الشيكات للتأكد من أن الموقع غير موجود بالفعل.إذا لم يكن الأمر كذلك، فأنت تريد حقا القيام بشيء مخصص، يمكنك استخدام خيار RunnithelevatedPateds الذي سيعيد تشغيله كحساب مستخدم في تجمع التطبيقات. http://msdn.microsoft.com/en-us/ library/microsoft.sharepoint.spsecurity.runwithelevedprivileges.aspx

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

نصائح أخرى

يمكنك التحقق والتأكيد ما إذا كان يمكن للمستخدمين الآخرين استعراض صفحة "عني" من MySite الناتج عن تطبيق وحدة التحكم برمجيا.

لاحظ أيضا أنه في هذا السيناريو، فإن Mysite للمستخدم الذي تم إنشاؤه ببرمجة، هذا مستخدم معين لم يزور mysite بواسطة الخلق.

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