Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core ASP.NET标识核心:用于在web场上重置密码的令牌无效_Asp.net Core_Data Protection_Web Farm - Fatal编程技术网

Asp.net core ASP.NET标识核心:用于在web场上重置密码的令牌无效

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

所以,我一直在阅读这些文档,并试图将我的网站建立在一个网络农场上。我搜索了很多文章,似乎将密钥环设置为公共网络路径应该是数据保护工作所需的全部。在我的情况下,我将它坚持到Azure

现在,身份验证工作正常,但当用户尝试重置其密码时(当链接在一台机器上生成并在另一台机器上验证时),我总是收到无效令牌错误

编辑:添加了用于生成链接和验证令牌的代码

顺便说一句,下面是用于生成带有令牌的重置链接的代码:

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实例。