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)]
应用此功能。在我的情况下,似乎可以关闭此功能