2012-01-16 2 views
0

ASP.NET MVC 2 Issue - Dot in Route дает пример, чтобы разрешить точку (.) В url и разрешить файл .svc.Как ASP.NET MVC3 Маршрут для приема любого типа файла (точка в URL-адресе)

Мой вопрос, как разрешить любой файл, я попробовал:

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 
<remove extension=".*"/> 

Не работает! Я хочу: для любого URL-адреса (любые символы) может обрабатываться MVC3 Route (MapRoute).

ответ

0

вот решение:

Во-первых: это не будет вызывать утечку безопасности, если вы посещаете /web.config, вы получите

HTTP Error 404.8 - Not Found 
The request filtering module is configured to deny a path in the URL that contains a hiddenSegment section. 

Если вы не измените hiddenSegment конечно.

вот решение, в web.config файле:

<system.webServer> 
    <handlers> 
     <add name="Static-Favicon" path="favicon.ico" verb="GET" modules="StaticFileModule" resourceType="File" requireAccess="Read" /> 
     <add name="Static-Robot" path="robots.txt" verb="GET" modules="StaticFileModule" resourceType="File" requireAccess="Read" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 
</system.webServer> 

Static-Favicon и Static-робот может быть удален, если вы хотите ваш MVC обрабатывать эти два файла, а также.

Btw, вы по-прежнему нужен <remove extension=".svc" /> для обработки файла SVC и relaxedUrlToFileSystemMapping для специальных кодов в URL

0

Это очень и очень плохая идея. Вы хотите, чтобы люди могли загрузить ваш web.config? см. ваши пароли? скачать свою базу данных? IIS и MVC преднамеренно блокируют многие виды расширений, потому что не делать этого крайне небезопасно.

+0

Он может открыть дверь, но я могу блокировать ресурс впоследствии. Мой вопрос в том, как, а не почему –

+0

Btw, там есть system.webServer/securityrequestFiltering для этой безопасной цели, так или иначе –

+0

@EricYin - Я имел в виду то, что вы сказали о возможности «разрешить любой тип файла». Если вы поймете, почему это плохая идея, то, возможно, вам не следует задавать этот вопрос, а скорее, как разрешить типы файлов, которые вы хотите ... это совсем другая история. –

Смежные вопросы