Question

J'ai une installation blogengine.net qui nécessite une privatisation.

Je fais un travail de recherche en ce moment, mais je dois garder mon blog/journal privé jusqu'à ce que certaines conditions soient remplies.

Comment puis-je privatiser mon installation blogEngine.net afin que les lecteurs doivent se connecter pour lire mes articles ?

Était-ce utile?

La solution

J'utilise cette extension.Enregistrez simplement le fichier sous RequireLogin.cs dans votre dossier App_Code\Extensions et assurez-vous que l'extension est activée.

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

Autres conseils

Depuis: BlogEngine.NET 2.5 - Blogs privés

Si vous allez dans le panneau de configuration, onglet Utilisateurs, sous-onglet Rôles (côté droit), pour « Anonyme » dans la zone Outils de droite, passez la souris dessus et sélectionnez « Droits ».

Vous êtes maintenant sur la page Droits pour le rôle Anonyme.Décochez tout, en particulier « Afficher les publications publiques ».CEPENDANT, vous devez garder au moins un élément coché, sinon tout revient à la valeur par défaut.Par exemple, vous pouvez laisser cochée « Afficher les notes sur les publications ».Puis enregistrez.

Ensuite, toute personne qui n’est pas connectée devrait être automatiquement redirigée vers la page de connexion, quelle que soit la page à laquelle elle tente d’accéder au site.

La réponse de lomaxx n'a pas fonctionné, j'ai donc décidé d'éviter que blogengine.net effectue l'authentification des lecteurs.

sur iis, j'ai désactivé l'accès anonyme et ajouté un utilisateur invité à la liste des utilisateurs win2k3.

Nous avons créé un outil simple qui permet à certains utilisateurs d'accéder à certaines publications en fonction de leurs rôles d'adhésion ASP.NET pour obtenir un résultat quelque peu similaire.

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

Je pense qu'il est possible de le faire dans le fichier de configuration Web en faisant quelque chose comme ce qui suit :

<system.web>
    <authorization>
      <allow roles="Admin" />
      <deny users="*" />
    </authorization>
</system.web>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top