私有化BlogEngine.Net安装

时间:2008-08-20 03:39:31

标签: c# .net asp.net blogs

我有一个需要私有化的blogengine.net安装。

我目前正在做研究工作,但我必须保持我的博客/期刊私密,直到满足某些条件。

如何将我的blogEngine.net安装私有化,以便读者必须登录才能阅读我的帖子?

5 个答案:

答案 0 :(得分:2)

来自:BlogEngine.NET 2.5 - Private Blogs

如果您进入控制面板,右侧工具区域的“匿名”的“用户”选项卡,“角色”子标签(右侧),将鼠标悬停在该区域并选择“权限”。

您现在位于匿名角色的“权限”页面上。取消选中所有内容,尤其是“查看公共帖子”。但是,您确实需要至少保留一个项目,否则所有内容都会恢复为默认值。例如,您可以选中“在帖子上查看评分”。然后保存。

然后,任何未登录的人都应该被自动重定向到“登录”页面,无论他们尝试进入该网站的页面在哪里。

答案 1 :(得分:1)

lomaxx的回答没有用,所以我决定避免让blogengine.net为读者执行认证。

在iis上,我禁用了匿名访问,并将访客用户添加到了win2k3用户列表中。

答案 2 :(得分:1)

我们创建了一个简单的工具,允许某些用户根据他们的ASP.NET成员角色访问某些帖子,以获得类似的结果。

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

答案 3 :(得分:1)

我使用此扩展程序。只需将文件保存为App_Code \ Extensions文件夹中的RequireLogin.cs,并确保扩展已激活。

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

答案 4 :(得分:0)

我认为可以通过执行以下操作在Web配置文件中执行此操作:

<system.web>
    <authorization>
      <allow roles="Admin" />
      <deny users="*" />
    </authorization>
</system.web>