Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
C# 带加号字符的ASP MVC(属性)路由_C#_Asp.net Mvc - Fatal编程技术网

C# 带加号字符的ASP MVC(属性)路由

C# 带加号字符的ASP MVC(属性)路由,c#,asp.net-mvc,C#,Asp.net Mvc,我有以下路线: [Route("konto/validera-epost/{email}/{hash}")] public ActionResult ValidateEmail(string email, string hash) 当某人使用带有“+”的电子邮件时,这种方法非常有效,例如: http://localhost:53529/konto/validera-epost/niels%2btest1%40bosmainteractive.se/4eac5247b9e6c9ae2a02095

我有以下路线:

[Route("konto/validera-epost/{email}/{hash}")]
public ActionResult ValidateEmail(string email, string hash)
当某人使用带有“+”的电子邮件时,这种方法非常有效,例如:

http://localhost:53529/konto/validera-epost/niels%2btest1%40bosmainteractive.se/4eac5247b9e6c9ae2a020957a54dd644

结果只是得到一个空页面

这很可能是由于IIS中的安全设置阻止了url中的
+

要解决(或覆盖/禁用),请在IIS或web.config中更改它,如下所示:

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

参考文献:
-
-

注意:我看到了一些关于启用此选项的安全问题。我建议在实际环境中使用此功能之前,多阅读一下

根据@Ryan的评论进行编辑:

[…]您可以使用属性
[ValidateInput(false)]


这是电子邮件验证链接吗?我只想发送散列,因为您无法控制电子邮件中的字符。我不知道安全问题(可能有几个),但您可以在操作级别使用属性
[ValidateInput(false)]
应用此功能。在我的情况下,似乎可以关闭此功能