Domanda

Ho un'installazione di blogengine.net che richiede la privatizzazione.

Al momento sto svolgendo un lavoro di ricerca, ma devo mantenere il mio blog/giornale privato finché non saranno soddisfatte determinate condizioni.

Come posso privatizzare la mia installazione di blogEngine.net in modo che i lettori debbano accedere per leggere i miei post?

È stato utile?

Soluzione

Io uso questa estensione.Salva semplicemente il file come RequireLogin.cs nella cartella App_Code\Extensions e assicurati che l'estensione sia attivata.

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

Altri suggerimenti

Da: BlogEngine.NET 2.5 - Blog privati

Se accedi al pannello di controllo, scheda Utenti, sottoscheda Ruoli (lato destro), per "Anonimo" nell'area Strumenti sul lato destro, passa il mouse sopra e seleziona "Diritti".

Ora sei nella pagina Diritti per il ruolo Anonimo.Deseleziona tutto, in particolare "Visualizza post pubblici".TUTTAVIA, è necessario mantenere almeno un elemento selezionato, altrimenti tutto torna ai valori predefiniti.Ad esempio, potresti mantenere selezionato "Visualizza valutazioni sui post".Quindi salva.

Quindi chiunque non abbia effettuato l'accesso dovrebbe essere automaticamente reindirizzato alla pagina di accesso, indipendentemente dalla pagina in cui tenta di accedere al sito.

la risposta di lomaxx non ha funzionato, quindi ho deciso di evitare che blogengine.net esegua l'autenticazione per i lettori.

su iis, ho disabilitato l'accesso anonimo e ho aggiunto un utente ospite all'elenco degli utenti win2k3.

Abbiamo creato un semplice strumento che consente a determinati utenti di accedere a determinati post in base ai rispettivi ruoli di appartenenza ASP.NET per ottenere un risultato in qualche modo simile.

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

Penserei che sia possibile farlo nel file di configurazione web facendo qualcosa di simile al seguente:

<system.web>
    <authorization>
      <allow roles="Admin" />
      <deny users="*" />
    </authorization>
</system.web>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top