加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-5 – 确认邮件中的aspnet身份无效令牌

发布时间:2020-12-15 23:12:05 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试确认一个帐户,但我正在获得“无效令牌”.错误. 这是我正在尝试的: var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);var callbackUrl = Url.Action("ConfirmacaoEmail","Usuario",new { userId = user.Id,code = code
我正在尝试确认一个帐户,但我正在获得“无效令牌”.错误.

这是我正在尝试的:

var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
var callbackUrl = Url.Action("ConfirmacaoEmail","Usuario",new { userId = user.Id,code = code },protocol: Request.Url.Scheme);

await UserManager.SendEmailAsync(user.Id,"Ativa??o de Conta",user.GetEmailAtivacao(model.Nome,callbackUrl));

如果我在此代码之后调用UserManager.ConfirmEmailAsync,我可以确认该帐户.但是,如果我打开它在变量callbackUrl内部的链接,并尝试通过该操作确认,我得到错误.

我以为可能是OwinContext的东西,所以我决定调用HttpContext.GetOwinContext().GetUserManager< MyCustomUserService>但我收到同样的错误.

任何线索?

解决方法

浏览器修改了传输中的代码.尝试在令牌上执行UrlEncode:
var code = await userManager.GenerateEmailConfirmationTokenAsync(userId);
code = System.Web.HttpUtility.UrlEncode(code);

否则浏览器会混淆令牌中可能存在的特殊符号.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读