C# 从浏览器获取无效令牌
我正在生成用于电子邮件确认的EmailConfirmationToken。生成的令牌如下所示:C# 从浏览器获取无效令牌,c#,asp.net,asp.net-identity,C#,Asp.net,Asp.net Identity,我正在生成用于电子邮件确认的EmailConfirmationToken。生成的令牌如下所示: AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA48Afnm/pyU6UZrt2VXGfHAAAAAACAAAAAAADZgAAwAAAABAAAAAv/3aZrzISkdKPKY/E44DXAAAAAASAAACgAAAAEAAAAAzqg9nuZRZdY2nbqshoqZRgAAAAzqerzjcOuZ06IgrWypvNdp406OlHJpcn/KIr6ZlgMqbPU/4S3C
AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA48Afnm/pyU6UZrt2VXGfHAAAAAACAAAAAAADZgAAwAAAABAAAAAv/3aZrzISkdKPKY/E44DXAAAAAASAAACgAAAAEAAAAAzqg9nuZRZdY2nbqshoqZRgAAAAzqerzjcOuZ06IgrWypvNdp406OlHJpcn/KIr6ZlgMqbPU/4S3COVpY8jcfc0O4/zlZbyLdgVeKCX22P6rvwRWXIAdA/mR+cfgRoOMw16DGh0WpOR26Qan/YeVj8vDwW1FAAAAIskto/9Vzb/7Em2RspEQvZaEqbD
我通过电子邮件将该令牌作为超链接发送给用户。
当用户点击链接时,他将重定向到我的确认功能
以下是我实现该功能的方式:
[Route("Register/ConfirmEmail")]
[HttpGet]
public async Task<IHttpActionResult> ConfirmEmail(string userId, string code)
{
string errorMessage = null;
if (userId == null || code == null)
{
errorMessage = "Die Benutzeridentifikation oder der Aktivierungscode sind beschädigt";
return RenderEmailConfirmedPage(userId, errorMessage);
}
var registerContext = new RegisterContext
{
UserId = userId,
ActivationCode = code
};
var result = await userService.ConfirmEmailAsync(registerContext);
你知道为什么所有的+都被删除了吗?这个+字符在URL中有特殊的含义。在返回确认URL之前,需要对其进行编码。UrlEncode实用程序应该满足您的需要 通过该方法传递URL字符串,然后再将其返回给用户,它应将+符号替换为%2B
AQAAANCMnd8BFdERjHoAwE/Cl sBAAAA48Afnm/pyU6UZrt2VXGfHAAAAAACAAAAAAADZgAAwAAAABAAAAAv/3aZrzISkdKPKY/E44DXAAAAAASAAACgAAAAEAAAAAzqg9nuZRZdY2nbqshoqZRgAAAAzqerzjcOuZ06IgrWypvNdp406OlHJpcn/KIr6ZlgMqbPU/4S3COVpY8jcfc0O4/zlZbyLdgVeKCX22P6rvwRWXIAdA/mR cfgRoOMw16DGh0WpOR26Qan/YeVj8vDwW1FAAAAIskto/9Vzb/7Em2RspEQvZaEqbD