사이트를 볼 수있는 사용자를 제어하는 사용자 지정 HttpModule을 만들려고합니다.사용자 인증 용 HttpModule은 Windows 인증과 어떻게 상호 작용합니까?
저는 Windows 인증을 활용하려고합니다.
if (HttpContext.Current.User.Identity.Name.Contains("jsmith"))
{
Response.Write("You do not have the correct permissions to view this site.");
Response.End();
}
을하지만 응용 프로그램 수준에서이 더 구성 만들고 싶어하기 때문에, 나는 HttpModule의를 사용하고 싶습니다 : 개별 페이지에
, 나는 아마 같은 것을 할 것입니다.using System;
using System.Web;
public class CustomAuthHttpModule : IHttpModule
{
public void Dispose() { }
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(OnBeginRequest);
context.EndRequest += new EventHandler(OnEndRequest);
}
void OnBeginRequest(object sender, EventArgs e) { }
void OnEndRequest(object sender, EventArgs e)
{
HttpApplication appObject = (HttpApplication)sender;
HttpContext contextObject = appObject.Context;
if (contextObject.User.Identity.Name.Contains("jsmith"))
{
contextObject.Response.Clear();
contextObject.Response.End();
}
}
}
나는 내가 OnBeginRequest() 함수에 넣을 수 있다면, 내가 가지고있는 코드를 사용하여 괜찮을 것 : 여기
내가 코드를 만든 시작이다. 그러나 OnEndRequest()가 실행될 때까지 HttpContext 개체에는 User 속성이 만들어지지 않습니다.코드를 먼저 실행하면 일부 사용자가 막 다른 곳에서 액세스를 차단하기 때문에이 출력을 생성하는 추가 작업을 수행하지 못하게됩니다.
누군가가 해결책을 제안 할 수 있습니까? 내 인증 모듈이 Windows 인증 모듈 이전에 실행 중이거나 그 이유는 무엇입니까?
... 또는 IIS 또는 파일 시스템 사용 권한으로 수행하려는 작업을 수행하는 더 쉬운 방법이 있습니까?
당신은 IIS가 당신을 위해 이렇게 내버려 단지 해달라고 이유가 있나요? 또는 web.config에서''기능을 사용 하시겠습니까? –
CodingGorilla
무슨 뜻인지 설명해 주시겠습니까? 기능을 검색하여 해당 내용을 확인합니다. IIS가 "나를 위해이 일을 어떻게"합니까? –
vwfreak
''! 굉장해. 코멘트가 아니라 하나라면 답으로 표시하겠습니다. 감사! –
vwfreak