Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 在AspNetCore Api路由中编码的Base64_Asp.net Core_Base64_Asp.net Core Mvc_Urlencode_Asp.net Core Webapi - Fatal编程技术网

Asp.net core 在AspNetCore Api路由中编码的Base64

Asp.net core 在AspNetCore Api路由中编码的Base64,asp.net-core,base64,asp.net-core-mvc,urlencode,asp.net-core-webapi,Asp.net Core,Base64,Asp.net Core Mvc,Urlencode,Asp.net Core Webapi,我正在按照中定义的规则创建一个 因此,我需要实现一个GET服务,其路径必须是: {url}/{url-encoding of base-64 encoding of the DER encoding of the OCSPRequest} 我创建了我的GET操作: [Route("api/ocsp")] public class OcspController : Controller { [HttpGet] [Route("{encoded}")] public asy

我正在按照中定义的规则创建一个

因此,我需要实现一个GET服务,其路径必须是:

{url}/{url-encoding of base-64 encoding of the DER encoding of the OCSPRequest}
我创建了我的GET操作:

[Route("api/ocsp")]
public class OcspController : Controller
{
    [HttpGet]
    [Route("{encoded}")]
    public async Task<IActionResult> Get(string encoded)
    {
        var ocspHttpRequest = await Request.ToOcspHttpRequest();
        var ocspHttpResponse =  await OcspResponder.Respond(ocspHttpRequest);
        return new OcspActionResult(ocspHttpResponse);
    }
    ...
 }
base64 ocsp请求的Url编码:

MEkwRzBFMEMwQTAJBgUrDgMCGgUABBR1vr6HF4T%2FUsADPXoNr6lpJ1JRowQUJfgJ%0A6MaP2huu1lFzJOFlkswOcM8CCB6PD3SWpxwf

如何解决此问题?

Base64编码产生的某些字符在URL路径中无效。这是可以更改的,但设置为这种方式是出于一个原因:即安全性。如果你允许这些角色,你将面临许多其他情况下不可能发生的攻击


但是,您可以自由地将其作为查询字符串的一部分传递。这样处理时不会出现错误。

有一个解决方法,您可以将{encoded}更改为{*encoded},然后它将接受不允许的其他符号。

可以为特定操作更改它吗?如何改变这一点?我想我不能使用querystring,因为RFC规范。
MEkwRzBFMEMwQTAJBgUrDgMCGgUABBR1vr6HF4T%2FUsADPXoNr6lpJ1JRowQUJfgJ%0A6MaP2huu1lFzJOFlkswOcM8CCB6PD3SWpxwf