문제


a) 내가 배우고있는 책은 우리가 처리한다면 로그인 이벤트는 사용자를 스스로 인증해야합니다. 따라서 Control은 사용자 이름과 비밀번호를 자동으로 유효성으로 검증하지 않습니다. 나는 책이 우리가 무시할 때만 일어날 것이라고 제안했다고 생각했다. login.onauthenticate () 방법이지만 이벤트 핸들러 만 추가하더라도 인증 이벤트, 자동 인증이 발생하지 않습니다.

하지만 왜 그게? 왜 이벤트 처리가 그렇게 작동하지 않는가 이니 또는 본질적으로 무시 해야하는 이벤트 page.oninit () 그리고 page.onload () 이벤트 처리에 대한 제어를 얻으려면?


b) MSDN 사이트를 확인했으며 기본적으로 우리가 재정의하는 경우 권장합니다. login.onauthenticate (), 우리는 또한 전화해야합니다 base.onauthenticate (). 그러나 왜 우리는 왜 우리가 login.onauthenticate (), 우리가 단순히 이벤트 핸들러를 선언하는 것과 동일한 효과를 얻는 경우 로그인?


고맙습니다

도움이 되었습니까?

해결책

당신은 무시해서는 안됩니다 OnAuthenticate. 이 방법은 내부적으로 만 사용하여 Authenticate 등록 된 핸들러에 대한 이벤트 MembershipProvider 핸들러가 등록되지 않은 경우 따라서, 사용자 정의 인증을 구현합니다 Login 제어, 당신은 간단히 핸들러를 등록합니다 Authenticate 이벤트 및 설정 AuthenticateEventArgs.Authenticated 재산.

이벤트 처리 Authenticate 이벤트는 다른 이벤트와 정확히 동일하게 작동합니다. 유일한 차이점은 OnAuthenticate 메소드에는 사용 여부를 결정하는 몇 가지 논리가 있습니다. MembershipProvider 또는 인증을위한 등록 된 이벤트 핸들러.

서브 클래스를 만드는 경우 Login 그리고 무시합니다 Login.OnAuthenticate, 전화하는 것이 현명합니다 base.OnAuthenticate(...) 등록 된 이벤트 처리기를 호출하는 논리가 포함되어 있기 때문입니다. 전화하지 않으면 base.Authenticate(...), 등록 된 이벤트 처리기를 직접 호출해야합니다. 그러나 서브 클래스를 만듭니다 Login 당신의 상황에서는 필요하지 않을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top