2008-08-20 4 views
4

나는 privatization이 필요한 blogengine.net 설치가 있습니다.BlogEngine.Net 설치의 개인화

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

독자가 내 게시물을 읽으려면 로그인해야하는 blogEngine.net 설치를 어떻게 민영화합니까?

답변

1

이 확장명을 사용합니다. RequireLogin.cs 파일을 App_Code \ Extensions 폴더에 저장하고 확장 프로그램이 활성화되어 있는지 확인하십시오.

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

내가 그것을 다음과 같이 수행하여 웹 설정 파일에서이 작업을 수행 할 수 있다고 생각합니다 :

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

답변을 주셔서 감사합니다. 그러나 이것은 작동하지 않았습니다. ( http://www.codeplex.com/blogengine/Thread/View.aspx?ThreadId=33705 – CVertex

1

lomaxx의 대답은 작동하지 않았다을, 그래서 나는에 대한 인증을 수행 blogengine.net 만드는 피하기로 결정 독자.

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

2

에서 : BlogEngine.NET 2.5 - Private Blogs 당신이 오른쪽 도구 영역에 "익명"에 대한 제어판, 사용자 탭 역할 하위 탭 (오른쪽)으로 이동하는 경우

이, 그 위로 마우스를 이동하고 "권한"을 선택하십시오.

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

로그인하지 않은 사용자는 사이트에 들어가려고하는 페이지가 어디에 있든 로그인 페이지로 자동으로 리디렉션되어야합니다.

+0

정확히 내가 필요한 것, 감사합니다. – Andy

관련 문제