C# 为什么IIS表示这个URL有一个双转义序列?
路径的最后一部分未编码C# 为什么IIS表示这个URL有一个双转义序列?,c#,asp.net-core,iis-express,urlencode,C#,Asp.net Core,Iis Express,Urlencode,路径的最后一部分未编码 Cl.1 DIV.2 Gr. C+D 背景:SPA前端和.NET核心WebAPI后端 一个控制器具有此声明 [HttpGet] [Route("/views/maske17/Part/{NodeId}/{DataId}")] public virtual IActionResult InfoGet([FromRoute][Required] string NodeId, [FromRoute]string DataId) 错误 调用上述UR
Cl.1 DIV.2 Gr. C+D
背景:SPA前端和.NET核心WebAPI后端 一个控制器具有此声明
[HttpGet]
[Route("/views/maske17/Part/{NodeId}/{DataId}")]
public virtual IActionResult InfoGet([FromRoute][Required] string NodeId, [FromRoute]string DataId)
错误 调用上述URL会导致
HTTP Error 404.11 - Not Found
The request filtering module is configured to deny a request that contains a double escape sequence.
如果删除C和D之间+的编码,则不会发生错误
问题 为什么IIS表示这个URL有一个双转义序列?
在您的情况下,
+
是罪魁祸首。您提供了一个%2B
,它被解码两次,即通过+
字符转换为空格字符
查看此和此GitHub以了解更多详细信息。我下面的回答是否回答了您的问题?