Pergunta

Eu tenho uma instalação do blogengine.net que requer privatização.

Estou fazendo um trabalho de pesquisa no momento, mas preciso manter meu blog/diário privado até que certas condições sejam atendidas.

Como posso privatizar minha instalação do blogEngine.net para que os leitores tenham que fazer login para ler minhas postagens?

Foi útil?

Solução

Eu uso essa extensão.Basta salvar o arquivo como RequireLogin.cs na pasta App_Code\Extensions e certificar-se de que a extensão esteja ativada.

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

Outras dicas

De: BlogEngine.NET 2.5 - Blogs privados

Se você for ao painel de controle, guia Usuários, subguia Funções (lado direito), para "Anônimo" na área Ferramentas do lado direito, passe o mouse sobre ela e selecione "Direitos".

Agora você está na página Direitos da função Anônima.Desmarque tudo, especialmente "Ver postagens públicas".NO ENTANTO, você precisa manter pelo menos um item marcado, caso contrário, tudo voltará ao padrão.Por exemplo, você pode manter a opção “Ver classificações nas postagens” marcada.Então salve.

Então, qualquer pessoa que não esteja logada deverá ser automaticamente redirecionada para a página de Login, independentemente de onde tente entrar no site.

A resposta de lomaxx não funcionou, então decidi evitar que o blogengine.net realizasse autenticação para os leitores.

no iis, desativei o acesso anônimo e adicionei usuários convidados à lista de usuários do win2k3.

Criamos uma ferramenta simples que dá a determinados usuários acesso a determinadas postagens de acordo com suas funções de membro do ASP.NET para obter um resultado semelhante.

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

Eu acho que é possível fazer isso no arquivo de configuração da web fazendo algo como o seguinte:

<system.web>
    <authorization>
      <allow roles="Admin" />
      <deny users="*" />
    </authorization>
</system.web>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top