查询字符串中的Base64编码参数出现问题

Moh*_*yan 5 html hyperlink c#-4.0 asp.net-mvc-3

我正在将Web应用程序中的链接发送到用户邮件(用于确认用户注册),如下所示:

<a target="_blank" href="http://localhost:2817/ConfirmRegistration?confirm=Y0tcmGepe7wjH7A1CT1IaA==">
http://localhost:2817/ConfirmRegistration?confirm=Y0tcmGepe7wjH7A1CT1IaA==
</a>
Run Code Online (Sandbox Code Playgroud)

但是Chrome会警告此消息:

Chrome讯息

查询字符串是否无效?我该如何解决?

顺便说一句:
我的应用程序在C#和MVC3中

Lee*_*unn 6

我正在使用 HttpUtility.UrlEncode 但如果 base64 编码的字符串包含“+”符号,我就会遇到问题。它被正确编码为“%2b”,但是当它从浏览器返回时,它被解释为一个空格。所以,我改用了两种简单的编码/解码方法:

public static string UrlEncodeBase64(string base64Input)
{
    return base64Input.Replace('+', '.').Replace('/', '_').Replace('=', '-');
}

public static string UrlDecodeBase64(string encodedBase64Input)
{
    return encodedBase64Input.Replace('.', '+').Replace('_', '/').Replace('-', '=');
}
Run Code Online (Sandbox Code Playgroud)


Mar*_* N. 4

您应该对confirm参数进行 URL 编码。您收到的错误是由于最后一个==片段造成的。

为此,请使用HttpServerUtility.UrlEncode或类似的框架方法。