所以,我一直在阅读文档,并试图在web服务器场上创建我的网站。我搜索了很多文章,似乎只需要将密钥环设置为一个公共网络路径就可以实现数据保护。就我而言,我将把它坚持到Azure。
现在,身份验证工作正常,但当用户试图重置密码时(当链接在一台机器上生成并在另一台计算机上验证时(,我总是会收到Invalid Token错误。
EDIT:添加了用于生成链接和验证令牌的代码。
顺便说一句,这是用于生成带有令牌的重置链接的代码:
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);
有什么想法吗?
谢谢。
好吧,和往常一样,问题出在椅子和键盘之间。。。
问题是,密钥环被设置为在#if RELEASE条件内使用azure,而该条件没有在发布管道上设置。。。
一句话:共享钥匙圈是一切启动和运行所需的一切。。。