منع الوصول إلى تطبيق ويب مخصصة صفحات المستخدمين غير المسؤولين في SharePoint

StackOverflow https://stackoverflow.com/questions/1804163

سؤال

لدي تطبيق ويب مخصصة يدمج مع SharePoint (MOSS 2007) الحل.أود أن أضيف دور القائم على الوصول إلى صفحات في تطبيق ويب مخصصة فقط للمستخدمين تحديد مجموعة SharePoint أو مع دور محدد التمكن من الوصول لهم.المستخدمين الآخرين إرسالها إلى الافتراضي OOTB صفحة ويب ، وإعطاء رسالة "غير مسموح لك بعرض هذه الصفحة".

أي شخص يمكن أن تشير إلى دروس في كيفية تنفيذ هذا ، وكيفية التحكم في الوصول على كل مخصصة الصفحة ؟

يرجى ملاحظة أن هذه الصفحات هي جزء من تطبيق ويب مخصصة ، لا التي تم إنشاؤها من خلال SharePoint API أو واجهة.

شكرا MagicAndi.

التحديث

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

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

المحلول

يجب وضع مماثل على المشروع الحالي, لقد غيرت قليلا أكثر منطقية إلى استخدام قاعدة الطبقة المخصصة صفحات الويب شيئا مثل:

public abstract class WebPageBase : Page
{
    public SPBasePermissions PagePermissionFlag;
    public override void OnInit(EventArgs e)
    {
        SPWeb web = SPContext.Current.Web;
        if(!web.DoesUserHavePermissions(PagePermissionFlag))
        {
            // build the access denied page
            SPUtility.Redirect(SPUtility.AccessDeniedPage + "?Source=" + SPHttpUtility.UrlKeyValueEncode(web.Site.MakeFullUrl(Request.RawUrl)),
                               SPRedirectFlags.RelativeToLayoutsPage,
                               HttpContext.Current);
        }
} }

ثم في الصفحة نفسها, إذن هو تعريف:

public class ContentPage : WebPageBase
{
    protected void Page_PreInit(Object sender, EventArgs e)
    {
        PagePermissionFlag = SPBasePermissions.ViewFormPages;
    }
}

ملاحظة:يمكنك أيضا تعيين ذلك على:

<%@Page PagePermissionFlagString="SPBasePermissions.ViewFormPages"%> *
* سوف تضطر إلى تحويل السلسلة إلى التعداد في WebPageBase)

فقط للإشارة ، هذا الزائد لا يرتبط تنفيذ أعلاه ، وكيفية استخدامها داخليا:

public static class CurrentUser
{
    public static bool IsAdmin
    {
        get
        {
            return SPContext.Current.Web.DoesUserHavePermissions(SPBasePermissions.ManageWeb);
        }
    }

    public static bool IsReader
    {
        get
        {
            return SPContext.Current.Web.DoesUserHavePermissions(SPBasePermissions.ViewFormPages);
        }
    }
}

نصائح أخرى

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

وعندما يحاول البعض أن ترى الصفحة أنه ليس من المفترض أن نرى ، SharePoint تلقائيا بإرسال بينه الوصول نفى الصفحة.

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

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

على سبيل المثال مستخدمين.GetUserInfo() الأسلوب بإرجاع IsSiteAdmin العلم الذي يمكن الإجابة على سؤالك.

http://msdn.microsoft.com/en-us/library/ms774637.aspx

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