ASP.NET: HttpRequest.Url усекает конечный символ "." персонажи - PullRequest
0 голосов
/ 24 июля 2011

Если URL-адрес, который поступает в приложение ASP.NET, содержит конечные конечные точки - '.', Они усекаются из свойства Url в HttpRequest.

Например, если URL-адрес "http://server/folder.../",", следующий вызов:

HttpContext.Current.Request.Url.PathAndQuery;

возвращает "/ folder /" вместо "/folder.../".

Пробовал это решение, но оно помогает, только если Uri создается после выполнения предложенного кода, тогда как HttpRequest, вероятно, создается до выполнения любого кода в веб-приложении ASP.NET.

Любые идеи, как сохранить трейлинг '.'в HttpRequest.Url?

1 Ответ

0 голосов
/ 24 июля 2011

Вы можете добавить relaxedUrlToFileSystemMapping к своему web.config внутри секции <system.web>.

  <httpRuntime relaxedUrlToFileSystemMapping="true" />

Это сохранит точки в URL.

Но по какой-то причине Url.PathAndQuery не будет содержать точек, в то время как RawUrl содержит их.

HttpContext.Current.Request.Request.RawUrl;

Имейте в виду, что при включении relaxedUrlToFileSystemMapping.

, вероятно, существуют некоторые последствия для безопасности.
...