通过查询字符串传递帐户激活令牌时出现错误 HTTP 404.11

Fra*_*gg7 5 asp.net identity asp.net-membership asp.net-mvc-5 asp.net-identity

我正在尝试实现密码重置功能。我使用 ASP.NET 身份。

我正在使用UserManager.GetConfirmationToken返回这样的令牌:

UW/cj4xUj08kiGCntnWs7z1eUcWlyfNczH5IZfvf0ScTi4L1jgdkkus/Zb5ROJOWb%2b1XAVRSiBUvVGnESfEyauDDa4u%2bPDUH6D/CIpwPcFYRvLi%2b%2bq6f%2bRIhKHRTsGMV0y8lXpSZ5V qySWGSSaW9kofGage/IjW4HrvONeETA4Szov3u7HgmqEUf0yzgivJ0

然后,我编写 URL 并通过电子邮件将其发送给注册用户。激活账户的url是这样的:

http://localhost:4322/Account/Confirm/UW/cj4xUj08kiGCntnWs7z1eUcWlyfNczH5IZfvf0ScTi4L1jgdkkus/Zb5ROJOWb%2b1XAVRSiBUvVGnESfEyauDDa4u%2bPDUH6D/CIpwPcFYRvLi%2b%2bq6f%2bRIhKHRTsGMV0y8lXpSZ5VqySWGSSaW9kofGage/IjW4HrvONeEtA4Szov3u7HgmqEUf0yzgivJ0
Run Code Online (Sandbox Code Playgroud)

当我点击时,出现这个错误:
Error HTTP 404.11 - Double escape sequence issue

rt2*_*800 0

您可能需要使用httputility.urlencode对 URL 进行编码

  • 这个答案真的对你有帮助吗?就我而言,MVC 似乎将 %2b 解析为 + 号,然后失败。例如:hxxp://adomain/test/ex%2bample 使用 HttpUtility.UrlEncode 或 Uri.EscapeDataString 进行编码(不同之处在于改为写入 %2B。似乎都不适用于 MVC5.1、IIS8.5 (2认同)