سؤال

في نموذج كائن جانب الخادم ، من الممكن تعيين عنوان البريد الإلكتروني للوصول إلى الطلب من خلال الخاصية SPWeb.RequestAccessEmail (مسن).

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

للأسف لا يوجد عقار Web.RequestAccessEmail في نموذج كائن جانب العميل.

هل هناك طريقة لتعيين عنوان البريد الإلكتروني هذا من خلال حقيبة الملكية (الملقب Web.AllProperties["__SecretKey"]) ، خدمة ويب (_vti_bin, ، إلخ.) أو أي حل آخر?

أي مساعدة هو محل تقدير كبير!

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

المحلول

في أحدث إصدار من "شاريبوانت أون لاين إدارة شل" (الإصدار 16.0.4630.1200) وشملت Microsoft.SharePoint.Client.dll يضيف العقار RequestAccessEmail إلى Web صف دراسي.

تحميل: https://www.microsoft.com/en-us/download/details.aspx?id=35588

يمكنك استخدام هذا دلل حتى يتم تحرير حزمة نوجيت.

تحرير:منذ الإصدار 16.1.4727.1200 من Microsoft.SharePointOnline.CSOM نوجيت-حزمة RequestAccessEmail ويدعم الملكية.

نصائح أخرى

للأسف هذه الخاصية لا يمكن الوصول إليها عن طريق CSOM.

كيفية استرداد جميع الخصائص المتاحة لكائن عميل الويب:

var allProperties = clientContext.Web.AllProperties;
clientContext.Load(allProperties);
clientContext.ExecuteQuery();

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

وهنا رمز:

//quite dirty hack but at this point the only possibility to set the AccessRequest mail via clientside
function setAccessRequest(mail) {
    var iframe = document.createElement('iframe');
    //set the setrqacc.aspx link
    var setrqaccUrl = _spPageContextInfo.webAbsoluteUrl + '/_layouts/15/setrqacc.aspx?type=web';
    //create setrqacc.aspx hidden iframe
    iframe.setAttribute('src', setrqaccUrl);
    iframe.setAttribute('style', 'display:none');
    iframe.onload = function () {
        //this will fire 2 times - the first time when its initially loaded. the second after the changes were applied (page is reloaded (postback) after the submitbutton is triggered)
        var $iframeInput = $('input[id*="_txtEmail"]', $(iframe).contents());
        if ($iframeInput.length) {
            //initial load - apply settings
            $iframeInput.val(mail);
            //gets iframeInput's parent so the current input can be placed inside
            var $iframeBtn = $('input[id*="_btnSubmit"]', $(iframe).contents());
            //trigger the post
            $iframeBtn.trigger('click');
        } else {
            //second load - do callback
            callback('AccessRequest');
        }
    };
    document.body.appendChild(iframe);
}

يجب أن تكون ملفوفة في ويتينغديالوغ وبعض التحذيرات عندما يحاول المستخدم الخروج من الصفحة.تحميل صفحة في إفريم يمكن أن يستغرق بعض الوقت وهذا الرمز يفعل ذلك مرتين.

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