2011-03-07 5 views
0

과거에 asp.net 인증/권한 부여 작업을 할 때마다 .htm .js .css 파일 (실제로 asp.net isapi dll에서 처리되지 않는 파일).asp.net 인증/인증이 비 asp.net 파일을 처리하는 방식이 변경 되었습니까?

다른 작업을하는 동안 잠시 후에 저는 지금 VS2010을 사용하여 웹 개발을하고 있습니다. 지금은 그 반대입니다. 로그인 페이지의 이미지 및 .js 파일이 작동하지 않기 때문에 모든 파일이 보호되는 것처럼 보입니다.

제 질문은 비 asp.net 파일이 잘못 취급되는 것에 대한 제 초기 가정 이었습니까? 그렇지 않은 경우이 변경 사항은 언제 발생 했습니까? 현재 모든 파일이 asp.net에 의해 처리된다는 것을 의미하는 VS2010 개발 서버에 변경이 있었습니까?

감사합니다.

편집 추가 :

난 그냥 내가 로컬 IIS 서버에서 내 프로젝트를 실행할 때, 비 asp.net 파일 (예 : 이미지와의 .js)이 확보되지 않은 것으로 나타났습니다. 그러나 VS 개발 서버에서 실행하면됩니다. 이것은 IIS와 dev 서버 간의 구성 차이에 대한 명확한 설명입니다. 이것은 또 다른 질문으로 나를 이끌고 .. 그것은 VS dev에 서버를 구성 할 수 있습니까?

답변

0

아니요. IIS 7 (이전 버전)과 고전적인 파이프 라인을 사용하는 IIS7 +에서 작동하는 방식이지만 aspnet isapi를 통해 모든 내용을 라우팅하여 변경할 수 있습니다.

IIS7 + 또는 VS Developement 웹 서버 (Cassini)에서 통합 파이프 라인을 사용하는 경우 모든 요청은 asp.net 인증을 통해 라우팅됩니다.

+0

감사합니다. 이전에 테스트 용으로 로컬 IIS를 사용 중이었고 현재 Cassini를 사용하고 있기 때문에 혼란이있었습니다. 이제 실제 배포를 정확하게 모방하는 방식으로 Cassini를 인증과 함께 사용할 수 있는지 알아야합니다. – Martyn

+0

아니요. Cassini는 항상 asp.net 파이프 라인을 통해 모든 것을 라우팅합니다. –

1

나는이 문제와 관련하여 더 많은 정보를 발견했다.

IIS 7은 통합 파이프 라인 모드에서 실제로 asp.net 콘텐츠와 동일한 파이프를 통해 모든 파일에 대한 요청을 처리하므로 비 asp.net 파일 권한 부여 동작이 변경됩니다.

그러나 이전 버전과의 호환성을 유지하기 위해 인증은 asp.net 콘텐츠가 아닌 것을 무시할 전제 조건으로 설정되었습니다. 이렇게하면 동작이 변경되지 않은 모양이 만들어집니다.

이 동작을 변경하고 비 asp.net 콘텐츠를 보호하려면 web.config에 다음을 추가하여이 전제 조건을 무시할 수 있습니다.

<system.webServer> 
    <modules> 
    <remove name="FormsAuthenticationModule" /> 
    <add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" /> 
    <remove name="UrlAuthorization" /> 
    <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> 
    <remove name="DefaultAuthentication" /> 
    <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" /> 
    </modules> 
</system.webServer> 

이렇게하면 사전 조건과 함께 HttpModule이 효과적으로 제거되고 제거되지 않고 다시 추가됩니다.

카시니는 통합 파이프 라인 모드를 사용하도록 설정되었으며 이전 버전과의 호환성 전제 조건을 가지고 있지 않습니다. 즉, 양식 인증을 사용하여 VS2010 dev 서버를 사용하는 경우 문제가 발생하지 않으며 비 asp.net 콘텐츠는 항상 보안됩니다.

관련 문제