문제

민영화가 필요한 blogengine.net 설치가 있습니다.

지금은 연구 작업을 하고 있지만 특정 조건이 충족될 때까지 블로그/저널을 비공개로 유지해야 합니다.

독자들이 내 게시물을 읽으려면 로그인해야 하도록 blogEngine.net 설치를 사유화하려면 어떻게 해야 합니까?

도움이 되었습니까?

해결책

이 확장 프로그램을 사용합니다.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");
        }
    }
}

다른 팁

에서: BlogEngine.NET 2.5 - 비공개 블로그

제어판, 사용자 탭, 역할 하위 탭(오른쪽)으로 이동하여 오른쪽 도구 영역의 "익명"에 대해 해당 항목 위에 마우스를 놓고 "권한"을 선택하십시오.

이제 익명 역할에 대한 권한 페이지가 표시됩니다.특히 "공개 게시물 보기"를 포함한 모든 항목을 선택 취소합니다.그러나 적어도 하나의 항목을 선택해야 합니다. 그렇지 않으면 모든 것이 기본값으로 되돌아갑니다.예를 들어 '게시물의 평점 보기'를 선택된 상태로 유지할 수 있습니다.그런 다음 저장합니다.

그러면 로그인하지 않은 사람은 어느 페이지에서 사이트에 접속하려고 하든 자동으로 로그인 페이지로 리디렉션됩니다.

lomaxx의 답변이 작동하지 않았기 때문에 blogengine.net이 독자에 대한 인증을 수행하지 않도록 결정했습니다.

iis에서는 익명 액세스를 비활성화하고 win2k3 사용자 목록에 게스트 사용자를 추가했습니다.

우리는 비슷한 결과를 얻기 위해 ASP.NET 회원 역할에 따라 특정 사용자에게 특정 게시물에 대한 액세스 권한을 부여하는 간단한 도구를 만들었습니다.

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

다음과 같은 작업을 수행하여 웹 구성 파일에서 이 작업을 수행하는 것이 가능하다고 생각합니다.

<system.web>
    <authorization>
      <allow roles="Admin" />
      <deny users="*" />
    </authorization>
</system.web>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top