为什么我的电子邮件确认令牌无效?

时间:2019-07-24 18:56:08

标签: c# .net-core asp.net-identity

我正在尝试获得有关Microsoft Identity 2.0的干净电子邮件确认。我正在生成电子邮件链接进行确认,但无法正常工作。 我发现,callbackrul上的编码令牌正变为小写,并且我相信这是有问题的。但是我不知道该怎么解决.....

当代码变量获取值时,它看起来像: CfDJ8C5jg3XNISFEoFA015AdmTmmbOmQG / cxNBfdOALg4WM + iU6uf8WeJ13buFIzbdlP3tK3kWU1Q6BwGh / DY7dAYqbj + zz7jXGOK1Y79mtDT2jiEKV4NdaLbfaruzOvoKSVhvg4EFVYPAQRrjcAnOkfCxlff6hMVhIBWHkg8rqv7GBnqXvJ + UbCErqlobIxI69YreNWVTM1Z4lkAYQM2xmwRA // 0T53KNPTWIX52oDc52eFLJAlsWhXI9uHwgfwTt0X9g ==

回调后,它已更改为: cfdj8c5jg3xnisfeofa015admtmmbomqg%2Fcxnbfdoalg4wm%2Biu6uf8wej13bufizbdlp3tk3kwu1q6bwgh%2Fdy7dayqbj%2Bzz7jxgok1y79mtdt2jiekv4ndalbfaruzovoksvhvg4efvypaqrrjcanokfcxlff6hmvhibwhkg8rqv7gbnqxvj%2Bubcerqlobixi69yrenwvtm1z4lkayqm2xmwra%2F%2F0t53knptwix52odc52efljalswhxi9uhwgfwtt0x9g%3D%3D

在确认操作时,我将解码令牌作为: cfdj8c5jg3xnisfeofa015admtmmbomqg / cxnbfdoalg4wm + iu6uf8wej13bufizbdlp3tk3kwu1q6bwgh / dy7dayqbj + zz7jxgok1y79mtdt2jiekv4ndalbfaruzovoksvhvg4efvypaqrrjcanokfcxlff6hmvhibwhkg8rqv7gbnqxvj + ubcerqlobixi69yrenwvtm1z4lkayqm2xmwra // 0t53knptwix52odc52efljalswhxi9uhwgfwtt0x9g ==

register.cshtml.cs

的一部分
var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
var callbackUrl = Url.Page(
                  "/Account/ConfirmEmail",
                  pageHandler: null,
                  values: new { userId = user.Id, code = codeenc },
                  protocol: Request.Scheme
                  );
await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                        $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

confirmemail.cshtml.cs

var user = await _userManager.FindByIdAsync(userId);
    if (user == null)
       {
          return NotFound($"Unable to load user with ID '{userId}'.");
       }
var result = await _userManager.ConfirmEmailAsync(user, code);

那我在哪里弄错了?

2 个答案:

答案 0 :(得分:0)

我不确定,但是您尝试过这个吗?
code = System.Web.HttpUtility.UrlEncode(code);

答案 1 :(得分:0)

问题出在我的startup.cs文件中,

options.LowercaseQueryStrings = true;

评论令牌正常工作后。