2011-01-25 5 views
2

두 가지 옵션을 추가하기 위해 N2 인증의 로직을 사용자 정의해야합니다.N2 로그인 로직 사용자 정의

일부 옵션이 포함 된 RadioButtonList를 추가하고 로그인시 해당 RadioButton의 선택에 따라 세션 var를 설정해야합니다. 그렇지 않으면 사용자가 N2의 미리보기 창에서 사이트를 볼 수 없습니다. 내가 RadioButtonList를 N2/Login.aspx에 추가하고 N2.Edit.Login을 확장하고 Login1_Authenticate 메소드를 재정 의하여 base.Login1_Authenticate를 호출하기 전에 내 사용자 정의 논리를 수행 할 수있는 사용자 정의 로그인 클래스를 만들 수 있다고 생각했습니다. 그것은 그것이 확장 가능하도록 설계되지 않은 것으로 보이며 그 방법을 재정의 할 수 없습니다. 내 변경 작업을 수행하려면 이러한 변경 사항을 사용하여 N2의 사용자 지정 컴파일 작업을 수행해야합니다.이 작업은 수정하지 말고 확장으로 열어야하므로, N2를 업데이트 할 때마다 변경 사항을 다시 수행 할 필요가 없습니다.

내가 시도한 또 다른 경로는 N2/CustomLogin.aspx를 만들고 해당 사용자 정의 클래스에 내 논리를 모두 추가하고 web.config가 Login.aspx 대신 CustomLogin.aspx를 가리 키도록 설정하는 것이 었습니다. 로그인 페이지가 처음에는 실패했지만 로그인에 실패하면 우리의 라디오 버튼 옵션이없는 Login.aspx (하드 코딩 된 것으로 가정)로 리디렉션되었습니다. 우리는 N2 CMS를 사용하는

닷넷 4.0 (MVC 응용 프로그램)에 2.0.0.0

답변

1

N2는 내부적으로 표준 양식 인증, ASP.NET 회원 및 역할 공급자를 사용합니다. 로그온 한 사용자가 admin이거나 3 개의 N2 표준 역할 중 하나 (관리자, 편집자 및 저자 - 내가 생각하기에)라면 admin 사이트에 액세스 할 수 있습니다.

그렇다면 앱에 완전히 별도의 로그인 페이지를 만드는 것이 좋습니다. 당신의 Web.config에서이 같은 항목을 사용하여 사용자 정의 로그인 페이지에서 포인트 양식 인증 : 사용자 정의 로그인 양식에서

<authentication mode="Forms"> 
    <forms loginUrl="~/account/login" 
     timeout="2880" /> 
</authentication> 

당신은 표준 양식 인증 물건을 할 수는 사용자가 설정뿐만 아니라, 로그인하세요 세션 변수

나는 이것을 몇 번했는데 잘 동작합니다. 작동시키지 못한다면 문제를 보여주는 샘플을 제공하고 도움을 줄 수 있는지 알아볼 것을 제안합니다.