이미지 액세스 제한에 AuthorizeImage 이벤트 핸들러가 추가되었습니다. 사용자 이름과 인증 상태를 확인하려고 할 때 다음과 같은 사실을 알았습니다.Image Resizer User.Identity in eventhandler
아래의 내용은 예외는 아니지만 깨뜨릴 수 있습니다. 이미지를 찾을 수없는 기본 아이콘은 인증 여부와 관계없이 표시됩니다. 테스트 됨. 사용자 = 동일한 결과. HttpContext.Current.User = 같은 결과
Config.Current.Pipeline.AuthorizeImage += delegate(IHttpModule sender, HttpContext context, IUrlAuthorizationEventArgs e)
{
if (context.User.Identity.IsAuthenticated) { context.Response.Redirect("http://db2.stb00.s-msn.com/i/AF/263B63C5E656379CEE93E7A8692EC7.gif"); }
};
잘 (this.User 및 HttpCOntext.Current.User뿐만 아니라) 아래 작품은
Config.Current.Pipeline.AuthorizeImage += delegate(IHttpModule sender, HttpContext context, IUrlAuthorizationEventArgs e)
{
context.Response.Redirect("http://db2.stb00.s-msn.com/i/AF/263B63C5E656379CEE93E7A8692EC7.gif");
};
이 항상
Config.Current.Pipeline.AuthorizeImage += delegate(IHttpModule sender, HttpContext context, IUrlAuthorizationEventArgs e)
{
if (context.User == null)
context.Response.Redirect("http://db2.stb00.s-msn.com/i/AF/263B63C5E656379CEE93E7A8692EC7.gif");
};
리디렉션 Application_Start에서 테스트를 시작했지만 실제로 Application_PostAuthenticateRequest를 시도했습니다. 결과는 동일하지만. 사용자 지정 코드를 통해 인증하지만 표준 형식 인증을 사용하여 쿠키를 설정합니다. [Authorize]는 응용 프로그램에서 잘 작동합니다. 여기서 무엇이 잘못되었을 수 있는지에 대한 제안은 무엇입니까?
, 당신이 얻고있는 경우는 '을 (를) 찾을 수 없습니다 바랍니다 '아이콘을 클릭하고 URL을 직접 열고 실제 오류 메시지를 가져옵니다. –
죄송합니다. 난 nullreference 예외, "개체 참조가 개체의 인스턴스로 설정되지 않습니다." if (context.User.Identity.IsAuthenticated) {context.Response.Redirect ("http://db2.stb00.s-msn.com/i/AF/263B63C5E656379CEE93E7A8692EC7.gif");} "가 포함 된 행을 표시합니다. 그래서 context.User는 인스턴스화되지 않습니다. 문제는 그 이유입니다. 인증은 다른 측면에서 작동하므로 (보기에서 @ User.Identity.Name은 사용자 이름을 제공함) 이벤트 핸들러와 관련이있는 것으로 의심 되나요? – Baserz
ASP.NET은 익명 사용자를 위해 context.User를 채우지 않습니다. 익명 사용자가 아닌 경우 PostAuthorize 이전에 사용자 코드가로드되고 있지 않으므로 버그입니다. –