首页 > 解决方案 > %2b 导致 IIS Hosted Angular 返回 404

问题描述

我有一个函数,它返回一个包含令牌的 url 和一封返回给用户电子邮件的电子邮件。

当用户单击该链接时,它将重定向到我的 Angular 应用程序。

但是,如果 url 由 HttpUtility.UrlEncode 编码,则符号 (+) 将变为 %2b。

这导致我的 EC2 IIS 托管角度出现问题。但它在本地机器上运行良好。

我的 API(.Net3.0):

string encode_email = HttpUtility.UrlEncode(model.Email);
var encode_token = HttpUtility.UrlEncode(token);

var confirmationLink = WebsiteUrl + "confirm-email/" + encode_token + 
 "/" + encode_email;

我的角度路线

 {
   path:"confirm-email/:token/:email",
   component:ConfirmEmailComponent
 },

经过多次测试,我 100% 确定是 %2b 导致 url 无法正常工作。

这是我的 webapp 的示例链接

[删除链接]

如果您删除 %2b 并使用其他东西,它会完美运行。

请帮忙。我不确定在这里做什么。

标签: .netangulariis

解决方案


找到了答案,

在您的 web.config 文件中,您必须将 DoubleEscaping 设置为 true。

<security>
  <requestFiltering allowDoubleEscaping="True" />
</security>

推荐阅读