c# - Asp.Net MVC Core 启用双重转义

标签 c# asp.net asp.net-mvc asp.net-core-mvc

我正在开发 asp.net mvc 核心应用程序并尝试允许双重转义。

我的编辑网址有一个电话号码作为超链接(例如:+123)。我知道如何处理普通的 asp.net mvc 应用程序。我曾经将 web.config 文件更改为

<system.webServer>
    <security>
        <requestFiltering allowDoubleEscaping="true"/>
    </security>
</system.webServer>

但我现在正在使用没有 web.config 的 Asp.Net MVC Core 应用程序。我如何以及在哪里可以管理它?

最佳答案

ASP.NET Core 应用程序 could be hosted在各种 Web 服务器(IIS、Kestrel、Nginx、Apache 等)上。所有这些网络服务器都不知道 request filtering (特别是启用双重转义)这是一个 native IIS 功能。这是一个托管问题,ASP.NET Core 应用程序不应直接处理它。如果 URL 类似于 http://youserver.com/Home/Phone/+12345将到达 ASP.NET Core 管道,加号将不会以任何特殊方式处理,并将以 + 的形式进入字符串模型性格。

当您在 IIS 上托管您的应用程序时,web.config 仍在使用中,因此您可以配置 <requestFiltering allowDoubleEscaping="true"/>对于通常的 ASP.NET 应用程序。同样,您不应该害怕以非 ASP.NET Core 方式执行某些操作。您配置托管问题;这不是 ASP.NET Core 的领域。

如果你想在另一个 Web 服务器上托管应用程序,你应该检查它如何处理特殊字符。我知道 Kestrel 只会按原样传递此类 URL,因此如果托管在 Kestrel 上,您无需采取任何特定操作。

关于c# - Asp.Net MVC Core 启用双重转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49664759/

相关文章:

c# - 将普通窗口转换为模态窗口?

javascript - ASP.Net Webform 提醒每五分钟弹出一次

c# - 在 asp.net 中向饼图添加值和百分比

html - Razor - HTML.RAW 不输出文本

c# - 在同一解决方案中发布两个项目

c# - 是否有理由在界面中隐藏继承的成员?

c# - WPF 字符串长度转换器

c# - 如何在nuget界面启用 "update-all packages"按钮?

c# - 如何在 C# 中调用元组

css - 如何在其他页面添加css链接而不失真?