Asp.net core ASP.NET标识核心:用于在web场上重置密码的令牌无效
所以,我一直在阅读这些文档,并试图将我的网站建立在一个网络农场上。我搜索了很多文章,似乎将密钥环设置为公共网络路径应该是数据保护工作所需的全部。在我的情况下,我将它坚持到Azure 现在,身份验证工作正常,但当用户尝试重置其密码时(当链接在一台机器上生成并在另一台机器上验证时),我总是收到无效令牌错误 编辑:添加了用于生成链接和验证令牌的代码 顺便说一句,下面是用于生成带有令牌的重置链接的代码:Asp.net core ASP.NET标识核心:用于在web场上重置密码的令牌无效,asp.net-core,data-protection,web-farm,Asp.net Core,Data Protection,Web Farm,所以,我一直在阅读这些文档,并试图将我的网站建立在一个网络农场上。我搜索了很多文章,似乎将密钥环设置为公共网络路径应该是数据保护工作所需的全部。在我的情况下,我将它坚持到Azure 现在,身份验证工作正常,但当用户尝试重置其密码时(当链接在一台机器上生成并在另一台机器上验证时),我总是收到无效令牌错误 编辑:添加了用于生成链接和验证令牌的代码 顺便说一句,下面是用于生成带有令牌的重置链接的代码: var code = await _userManager.GeneratePasswordRese
var code = await _userManager.GeneratePasswordResetTokenAsync(user);
await _emailSender.SendPasswordResetAsync(user,
User.IsAuthenticated(),
Url.Link("default",
new {
Controller = "Account",
Action = "ResetPasswordEmail",
token = code,
email = user.Email
}),
_dbContext.Database.GetDbConnection(),
CancellationToken.None);
下面是它的验证方法:
var validToken = await _userManager.VerifyUserTokenAsync(user,
"Default",
"ResetPassword",
token);
有什么想法吗
谢谢。好的,一如既往,问题出在椅子和键盘之间 问题是keyring被设置为在发布管道上未设置的#if发布条件中使用azure
一句话:共享钥匙圈是一切启动和运行所需的一切…您是如何生成令牌的?您可能是URL编码/解码不正确吗?当链接在一台机器上生成并在另一台机器上验证时-当您在同一台机器上生成并验证链接时,它会工作吗?是的,当链接发送到同一台机器时,验证会按预期工作。。。当我再次回到我的机器Hello时,我会添加一些代码。我已经添加了用于生成和检查令牌的代码用户_userManager引用有效的userManager实例。