سؤال

لدي تثبيت blogengine.net يتطلب الخصخصة.

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

كيف يمكنني خصخصة تثبيت blogEngine.net الخاص بي بحيث يجب على القراء تسجيل الدخول لقراءة منشوراتي؟

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

المحلول

أنا استخدم هذا التمديد.ما عليك سوى حفظ الملف باسم RequireLogin.cs في مجلد App_Code\Extensions والتأكد من تنشيط الامتداد.

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using BlogEngine.Core;

using BlogEngine.Core.Web.Controls;

using System.Collections.Generic;



/// <summary>

/// Summary description for PostSecurity

/// </summary>

[Extension("Checks to see if a user can see this blog post.",

            "1.0", "<a href=\"http://www.lavablast.com\">LavaBlast.com</a>")]

public class RequireLogin
{

    static protected ExtensionSettings settings = null;



    public RequireLogin()
    {

        Post.Serving += new EventHandler<ServingEventArgs>(Post_Serving);



        ExtensionSettings s = new ExtensionSettings("RequireLogin");

        // describe specific rules for entering parameters

        s.Help = "Checks to see if the user has any of those roles before displaying the post. ";

        s.Help += "You can associate a role with a specific category. ";

        s.Help += "All posts having this category will require that the user have the role. ";

        s.Help += "A parameter with only a role without a category will enable to filter all posts to this role. ";

        ExtensionManager.ImportSettings(s);

        settings = ExtensionManager.GetSettings("PostSecurity");

    }



    protected void Post_Serving(object sender, ServingEventArgs e)
    {
        MembershipUser user = Membership.GetUser();
        if(HttpContext.Current.Request.RawUrl.Contains("syndication.axd"))
        {
            return;
        }

        if (user == null)
        {
            HttpContext.Current.Response.Redirect("~/Login.aspx");
        }
    }
}

نصائح أخرى

من: BlogEngine.NET 2.5 - المدونات الخاصة

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

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

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

لم تنجح إجابة lomaxx، لذلك قررت تجنب جعل blogengine.net يقوم بإجراء المصادقة للقراء.

في iis، قمت بتعطيل الوصول المجهول وإضافة مستخدمين ضيوف إلى قائمة مستخدمي win2k3.

لقد أنشأنا أداة بسيطة تتيح لبعض المستخدمين الوصول إلى منشورات معينة وفقًا لأدوار عضوية ASP.NET الخاصة بهم لتحقيق نتيجة مشابهة إلى حد ما.

http://blog.avablast.com/post/2008/08/BlogEnginenet-Post-Security.aspx

أعتقد أنه من الممكن القيام بذلك في ملف تكوين الويب عن طريق القيام بشيء مثل ما يلي:

<system.web>
    <authorization>
      <allow roles="Admin" />
      <deny users="*" />
    </authorization>
</system.web>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top