Pregunta

Tengo una instalación de blogengine.net que requiere privatización.

Estoy realizando un trabajo de investigación en este momento, pero tengo que mantener mi blog/diario privado hasta que se cumplan ciertas condiciones.

¿Cómo puedo privatizar mi instalación de blogEngine.net para que los lectores deban iniciar sesión para leer mis publicaciones?

¿Fue útil?

Solución

Yo uso esta extensión.Simplemente guarde el archivo como RequireLogin.cs en su carpeta App_Code\Extensions y asegúrese de que la extensión esté activada.

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

Otros consejos

De: BlogEngine.NET 2.5 - Blogs privados

Si ingresa al panel de control, pestaña Usuarios, subpestaña Funciones (lado derecho), para "Anónimo" en el área Herramientas del lado derecho, coloque el cursor sobre eso y seleccione "Derechos".

Ahora se encuentra en la página de Derechos para el rol Anónimo.Desmarque todo, en particular "Ver publicaciones públicas".SIN EMBARGO, debe mantener al menos un elemento marcado; de lo contrario, todo volverá a la configuración predeterminada.Por ejemplo, puedes mantener marcada la opción "Ver calificaciones de publicaciones".Luego guardar.

Luego, cualquier persona que no haya iniciado sesión debería ser redirigida automáticamente a la página de inicio de sesión, sin importar en qué página intente ingresar al sitio.

La respuesta de lomaxx no funcionó, así que decidí evitar que blogengine.net realice la autenticación para los lectores.

En iis, desactivé el acceso anónimo y agregué usuarios invitados a la lista de usuarios de win2k3.

Creamos una herramienta simple que brinda a ciertos usuarios acceso a ciertas publicaciones de acuerdo con sus roles de membresía de ASP.NET para lograr un resultado algo similar.

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

Creo que es posible hacer esto en el archivo de configuración web haciendo algo como lo siguiente:

<system.web>
    <authorization>
      <allow roles="Admin" />
      <deny users="*" />
    </authorization>
</system.web>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top