2009-08-18 2 views
4

ASP.NET의 응용 프로그램 폴더는 웹 사이트 실행에 중요한 다양한 요소를 저장하는 데 사용됩니다. 이 폴더를 더 깊이 이해하고, 특히 폴더 접근성을 이해하고 싶습니다. ASP.NET Web Site Layout의 기사에 따르면 : 응용 프로그램 폴더의ASP.NET 응용 프로그램 폴더 이해

내용은 App_Themes 폴더를 제외하고 , 웹 요청에 따라 제공하지 않지만 응용 프로그램 코드에서 액세스 할 수 있습니다.

이러한 폴더에 대한 브라우저 요청으로 인해 "404 - 페이지를 찾을 수 없습니다."

따라서 App_Code, App_Data, App_WebReferences, bin 등의 폴더가 사용자에게 제공되지 않도록하려면 어떻게해야합니까? IIS가 하드 코딩 되었습니까? "이 폴더를 제공하지 않습니까?" 권한 설정입니까? 어쨌든이 사실을 고의로/우연히 피할 수 있습니까?

+0

+1 링크 좋은 – bevacqua

답변

3

: \ WINDOWS \ SYSTEM32 \ inetsrv를 \ 설정 \이 섹션이 applicationHost.config 파일 :

<hiddenSegments applyToWebDAV="true"> 
    <add segment="web.config" /> 
    <add segment="bin" /> 
    <add segment="App_code" /> 
    <add segment="App_GlobalResources" /> 
    <add segment="App_LocalResources" /> 
    <add segment="App_WebReferences" /> 
    <add segment="App_Data" /> 
    <add segment="App_Browsers" /> 
</hiddenSegments> 

See also IIS Documentation.

+0

에 대한 발견! IIS6을 실행하여 주변을 파고'applicationHost.config' 파일이 존재하지 않습니다. IIS6 메타베이스는 _systemroot_ \ System32 \ Inetsr \ MetaBase.xml에서 찾을 수 있습니다. 불행히도 hiddenSegments 요소가 없습니다. –

0

.net 프레임 워크 자체는 탐색 할 수 있어야하는 다른 파일 형식과 함께 이러한 폴더에 대한 요청을 가로 채고 IIS에 404를 반환합니다. 그러면 IIS가 브라우저에 "404 - 페이지를 찾을 수 없습니다 ".

따라서 권한 수준 또는 IIS 수준에서 발생하지 않습니다. 이것은 프레임 워크 내부에 있습니다. 아마도 글로벌 web.config의 HttpHandlers 중 하나에 있습니다.

여기를 보면 명시 적으로 제공되지 않는 많은 파일 확장명을 볼 수 있습니다. 아마도 설정을 조정하여 web.config 파일을 xml (이 파일 유형이 제공되지 않는다는 일반적인 동작과 다름)으로 제공하도록 할 수 있습니다.

글로벌 web.config 파일에서 언급 한 특수 폴더 (app_code 등)가 특별히 표시되지 않습니다. 아마도 다른 HttpHandler 내부에서 처리 될 수 있습니다. 예를 들어, .aspx의 처리기는 특수 폴더에있는 .aspx 파일을 제공하지 못하도록하는 코드를 포함 할 수 있습니다.

1

Windows Server 2008의 IIS7에서는 ASP.NET이 더 많습니다. 전체 처리 파이프 라인에 단단히 통합되어 있기 때문에 IIS7에서는 ASP.NET에서 "아니오, 나는 그 것을 만지지 않을 것"이라고 쉽게 말할 수 있습니다.

IIS6에서 IIS 자체는 IIS에 대한 직접적인 지식이 거의없고 대신 ISAPI 구성을 통해 제어됩니다.

IIS6 IIS 관리자에서 웹 사이트를 마우스 오른쪽 단추로 클릭하고 속성을 가져온 다음 홈 디렉터리 탭으로 이동 한 다음 오른쪽 하단의 구성을 클릭하십시오. 이것은 ISAPI 응용 프로그램 확장과 각 응용 프로그램 확장이 수행하는 작업을 보여줍니다.

모든 ASP.NET 확장 (aspx, ascx, config, browser 등)에 대해서는 C : \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll로 처리되도록 지정합니다.

ASP.NET 시스템에는 C : \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG의 전역 machine.config 및/또는 web.config 파일에 정의 된 이러한 각 파일 유형에 대한 핸들러가 등록되어 있습니다.

예를 들어, 글로벌 웹.요소 httpHandlers에서 설정 파일 :

<add path="*.ascx" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/> 

그래서 그냥이 특수 폴더하지만 파일의 많은 종류의,하지만 검색에서 허용되지 예약 된 파일의 많은 유형이 아닙니다. C에서 발견 내 IIS7.5 설정,에