c# - MVC 中的 URL 编码 token

标签 c# .net .net-core

核心 2 MVC。我想生成“确认电子邮件链接”。我生成一个 token ,如下所示:

var token = await m_userManager.GenerateEmailConfirmationTokenAsync(user);

向用户发送电子邮件以激活他/她的帐户。然而,通过的 token 已从输入中删除了“+”:

    // Original
CfDJ8ON8hfMagqZNkicGHBXln5hi6kj4TCMMaxS5SaaU4BzEgFlKev1mT2gsij7gh2AkG8G+00t4n/PGwX6oQCvnpHk+wIGc1y8ycNbnzGpwW9Q8fwRlZDGQcIMtSCmX7LXwRS0iHSXgDF1O/QcDNGKbIMMZdcfMKYwnnzmUpmNxvZtG0JCYu5o754Y83VEtdbKASlzQz4aFxOUulvHRBQc3xRi2r0N8yveg26FO+RJ9khsqxKGRu4JDDVNWkpguXeVJvA==

    //Notice '+' is missin
CfDJ8ON8hfMagqZNkicGHBXln5hi6kj4TCMMaxS5SaaU4BzEgFlKev1mT2gsij7gh2AkG8G 00t4n/PGwX6oQCvnpHk wIGc1y8ycNbnzGpwW9Q8fwRlZDGQcIMtSCmX7LXwRS0iHSXgDF1O/QcDNGKbIMMZdcfMKYwnnzmUpmNxvZtG0JCYu5o754Y83VEtdbKASlzQz4aFxOUulvHRBQc3xRi2r0N8yveg26FO RJ9khsqxKGRu4JDDVNWkpguXeVJvA==

Controller :

[HttpGet]
public async Task<IActionResult> Activate(Guid? id, string token)
{
       ...

这里的解决方案是什么?我应该简单地将“空格”替换为+号吗?

最佳答案

您可以对 token 进行编码,然后在收到 token 时进行解码。这样就可以避免 url 编码。

示例:

public static void Main()
{
    var token = "CfDJ8ON8hfMagqZNkicGHBXln5hi6kj4TCMMaxS5SaaU4BzEgFlKev1mT2gsij7gh2AkG8G+00t4n/PGwX6oQCvnpHk+wIGc1y8ycNbnzGpwW9Q8fwRlZDGQcIMtSCmX7LXwRS0iHSXgDF1O/QcDNGKbIMMZdcfMKYwnnzmUpmNxvZtG0JCYu5o754Y83VEtdbKASlzQz4aFxOUulvHRBQc3xRi2r0N8yveg26FO+RJ9khsqxKGRu4JDDVNWkpguXeVJvA==";
    var newToken = HttpUtility.UrlEncode(token);
    Console.WriteLine(newToken);
    //this will print newToken without +
    var originalToken = HttpUtility.UrlDecode(newToken);
    //this will print original token, with +
    Console.WriteLine(originalToken);
}

关于c# - MVC 中的 URL 编码 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54830717/

相关文章:

c# - ASP.NET Core 如何判断 MIME 类型并应用不同的中间件?

c# - Silverlight - 关闭浏览器窗口

c# - 如何将 DLL 引用添加到 .NET WebAPI 项目?

.net - 在 Rider 中将 HostingEnvironment.EnvironmentName 设置为 Development

C#.NET : Change elements in a CSS file from dynamically generated HTML?

c# - 如何调试挂起的 WPF 应用程序?

c# - 返回类型中引用类型的可空性与覆盖的成员不匹配

c# - 如果不通过 TMG 会出现错误

c# - 委托(delegate)们需要什么?

c# - 两个 DateTime 对象之间的格式差异时间