2008-08-20 3 views
4

J'ai une installation blogengine.net qui nécessite une privatisation. Je fais du travail de recherche en ce moment, mais je dois garder mon blog/journal privé jusqu'à ce que certaines conditions soient remplies.Privatisation d'une installation BlogEngine.Net

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

Répondre

1

-je utiliser cette extension. Enregistrez simplement le fichier en tant que 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"); 
     } 
    } 
} 
0

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> 
+0

merci pour la réponse, mais cela n'a pas fonctionné :( voir http://www.codeplex.com/blogengine/Thread/View.aspx?ThreadId=33705 – CVertex

1

réponse de lomaxx ne fonctionne pas, alors j'ai décidé d'éviter de faire blogengine.net effectuer auth pour lecteurs. Sur iis, j'ai désactivé l'accès anonyme et ajouté un utilisateur invité à la liste des utilisateurs de win2k3.

2

De: BlogEngine.NET 2.5 - Private Blogs

Si vous allez dans le panneau de commande, onglet Utilisateurs, sous-onglet Rôles (côté droit), pour « Anonymous » sur la zone Outils côté droit, passez la souris sur cela et sélectionnez "Droits".

Vous êtes maintenant sur la page des droits pour le rôle Anonymous. Décochez tout, en particulier "Afficher les messages publics". TOUTEFOIS, vous devez conserver au moins un élément vérifié, sinon tout revient à la valeur par défaut. Par exemple, vous pouvez cocher "Afficher les évaluations sur les publications". Ensuite, sauvegardez.

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

+0

Exactement ce dont j'avais besoin, merci. – Andy