2013-10-23 1 views
0

ASP.net WebForms 프로젝트에서 현재 폼 인증을 사용하지만 클라이언트는 Windows 인증을 대신 사용하려고합니다. 그래서 Windows 인증을 사용하도록 web.config를 변경했습니다. 그러나 응용 프로그램은 일부 사용자 입력이 필요하며 웹 페이지에 액세스하기 전에 세션에 배치해야합니다. 우리는 현재 loginpage의 포스트 백에서이 작업을 수행합니다.Windows 인증 초기화 ASP.net

Windows 인증에 '로그인'페이지가 없으므로 어떻게이를 수행 할 수 있습니까? 세션이 올바르게 설정된 경우 On_Init 이벤트가 모든 페이지에서 확인해야합니까?

답변

2

세션마다 특정 데이터가 필요하면 가장 쉬운 방법은 세션이 사용 가능한 초기 파이프 라인 이벤트 중 하나에서 상태를 확인하는 전용 모듈입니다 (요청 요청 상태 이벤트 사운드가 가장 적합 함).

<location path="anonymous.page.aspx"> 
    <system.web> 
    <authorization> 
     <allow users="*" /> 
    </authorization> 
    </system.web> 
</location> 
-1

난 당신의 Web.config에서 Windows 인증과 LDAP (Active Directory 인증) 로 이동하지만, 즉 인트라넷 웹 응용 프로그램 또는 다른 방법이 역할 기반의 경우 수 있다고 생각 보안 windows 인증.

+0

이 질문에 대답하지 않습니다

public class CustomConditionCheckModule : IHttpModule { public void Init(HttpApplication context) { context.AcquireRequestState += new EventHandler(acq_req_state); } public void acq_req_state(object sender, EventArgs e) { // check your condition there - the data is in session var session = HttpContext.Current.Session; if (... the condition ...) Response.Redirect("~/anonymous.page.aspx"); } } 

그런 다음 당신은 또한 (이에 대한 web.config의 섹션이 필요) 익명으로 액세스 할 수있는 페이지가 필요합니다. –

+0

@WiktorZychla : 사실, LDAP를 사용하는 Windows 인증이 사용자 정의 로그인 페이지를 가질 수 있다고 생각하고 나머지는 일반적인 방법으로 수행 할 수 있다고 대답했습니다. 왜냐하면, 제가 언급 한 것처럼 현재 프로젝트에도 똑같이하고 있기 때문입니다. 그러나, 그것의 그것 같이이지 않는 경우에 클라이언트가 그것을 원하지 않는다는 것을 의미하는 경우에 당신은 적당한 방법이다. –

+0

답변을 확장하려고 할 수 있습니다. –