Frage

Ich habe eine blogengine.net-Installation, die privatisiert werden muss.

Im Moment betreibe ich Recherchearbeiten, aber ich muss meinen Blog/meine Zeitschrift privat halten, bis bestimmte Bedingungen erfüllt sind.

Wie kann ich meine blogEngine.net-Installation privatisieren, sodass sich Leser anmelden müssen, um meine Beiträge zu lesen?

War es hilfreich?

Lösung

Ich verwende diese Erweiterung.Speichern Sie die Datei einfach als RequireLogin.cs in Ihrem App_Code\Extensions-Ordner und stellen Sie sicher, dass die Erweiterung aktiviert ist.

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");
        }
    }
}

Andere Tipps

Aus: BlogEngine.NET 2.5 – Private Blogs

Wenn Sie in der Systemsteuerung auf die Registerkarte „Benutzer“ und die Unterregisterkarte „Rollen“ (rechte Seite) gehen, bewegen Sie den Mauszeiger über „Anonym“ im rechten Tools-Bereich und wählen Sie „Rechte“ aus.

Sie befinden sich jetzt auf der Seite „Rechte“ für die Rolle „Anonym“.Deaktivieren Sie alles, insbesondere „Öffentliche Beiträge anzeigen“.Sie müssen jedoch mindestens ein Element aktiviert lassen, sonst wird alles auf die Standardeinstellungen zurückgesetzt.Sie könnten beispielsweise die Option „Bewertungen für Beiträge anzeigen“ aktiviert lassen.Dann speichern.

Dann sollte jeder, der nicht angemeldet ist, automatisch zur Anmeldeseite weitergeleitet werden, unabhängig davon, über welche Seite er versucht, die Website aufzurufen.

Die Antwort von lomaxx hat nicht funktioniert, daher habe ich beschlossen, blogengine.net nicht dazu zu bringen, die Authentifizierung für Leser durchzuführen.

Auf IIS habe ich den anonymen Zugriff deaktiviert und einen Gastbenutzer zur Win2K3-Benutzerliste hinzugefügt.

Wir haben ein einfaches Tool erstellt, das bestimmten Benutzern entsprechend ihrer ASP.NET-Mitgliedschaftsrollen Zugriff auf bestimmte Beiträge gewährt, um ein etwas ähnliches Ergebnis zu erzielen.

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

Ich denke, dass es möglich ist, dies in der Webkonfigurationsdatei zu tun, indem man etwa Folgendes tut:

<system.web>
    <authorization>
      <allow roles="Admin" />
      <deny users="*" />
    </authorization>
</system.web>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top