기본 ASP.Net 폼 인증을 사용하는 웹 사이트가 있습니다. web.config 파일에서 개별 페이지 및 디렉토리에 대한 특정 액세스 규칙을 지정합니다. 모든 것이 훌륭하게 작동합니다.Forms 인증 리디렉션 전에 페이지 이벤트를 처리하는 방법은 무엇입니까?
그러나 지금은 새로운 요구 사항이 있습니다. 내 도메인에는 여러 하위 도메인간에 여러 가지 사이트 설정이 포함되어 있습니다. 이 응용 프로그램에 매핑되는 두 개의 DNS 하위 도메인이 있습니다. 하나는 aaa.mysite.com이고 다른 하나는 www.mysite.com입니다. FormsAuthentication 논리가 처리되기 전에 (사용자가 로그인 페이지로 리다이렉트 될 때까지) 특정 웹 요청이 FormsAuthentication에 의해 보호 된 페이지에 대한 하위 도메인 aaa.mysite.com으로부터 수신되면, 먼저 일부 코드를 실행하려고합니다. 이 코드는 기본적으로 세 번째 하위 도메인 인 zzz.mysite.com에서 쿠키를 읽으려고 시도하고 존재하지 않는 경우 zzz.mysite.com 응용 프로그램의 로그인 페이지로 Response.Redirect합니다.
내 Forms 인증 보호 페이지에서 상속받을 수있는 기본 클래스를 통해 처리 한 다음 Page_PreInit 함수에서 특수 코드를 호출하려고했습니다. 그러나 FormsAuthentication은 PreInit 함수가 호출되기 전에도 로그인 페이지로 리디렉션을 처리합니다.
누구든지이 케이스를 처리하는 좋은 방법을 알고 있습니까? Page_PreInit이 작동하지 않으면 FormsAuthentication 리디렉션보다 먼저 실행되도록 코드를 넣을 수 있습니다.하지만 어느 페이지에 액세스 할 수 있는지 (그리고 어떤 클래스가 상속되는지) 상속 여부를 확인할 수 있습니다. System.Web.UI.Page 또는 내 특수 BasePage에서 상속 된 경우).
아이디어가 있으십니까? 난 전역을 Application_BeginRequest, 사용할 수 있지만 다음 아주 좋은 생각처럼 보이지 않는 모든 단일 요청에 대해 호출 될 것이라고 생각합니다.
FormsAuthentication 이전에 이벤트를 처리하는 방법을 필요로하는 사람이 처음이 될 수는 없으므로, 저에게 감사드립니다.
감사합니다.
예, 쿠키가 .example.com에 기록되어 모든 하위 도메인에서 쿠키에 액세스 할 수 있습니다. 쿠키가 아직 존재하지 않는다면 문제가 남아 있습니다. Forms Authentication 리디렉션을 수행하기 전에 어떻게 Response.Redirect 할 수 있습니까? – kazzamalla
이 이벤트에 대한 내 Global.asax.cs 파일에 코드를 작성할 수는 있지만 사용자가 인증 된 후 시작되지는 않습니까? 사용자가 로그인 페이지에 인증 양식으로 리디렉션되기 전에 리디렉션을 수행하고 로그인을 요청했습니다. 그러나 행크에 대한 제 코멘트에서와 같이 사용자가 액세스하려는 페이지가 먼저 폼 인증에 의해 보호되는지 여부를 테스트하는 방법이 필요합니다. 어떤 아이디어? – kazzamalla