Aspnet Core 3.1 Identity ConfirmEmail 未按预期工作
Aspnet Core 3.1 Identity ConfirmEmail not working as expected
我使用的是 aspnet core 托管的 blazor wasm 项目类型。我正在尝试通过发送给用户的电子邮件 link 来确认用户帐户。
单击电子邮件 link 时,用户将导航到 Blazor 前端 Web 应用程序,然后该应用程序将查询字符串参数发布到 AccountsController 操作。在控制器操作中正确接收值。
我希望此操作方法将帐户设置为已确认,但这并没有发生。我也尝试 URL 编码代码,但仍然没有 success.The userId 是一个 GUID 并作为字符串传递。
[HttpGet]
[Route(Urls.ConfirmAccount)]
public async Task<IdentityResult> Confirm([FromQuery]string code,[FromQuery]string userId)
{
var user = await _userManager.FindByIdAsync(userId);
IdentityResult result = await _userManager.ConfirmEmailAsync(user, code);
return result;
}
尝试添加 Base64UrlDecode
[HttpGet]
[Route(Urls.ConfirmAccount)]
public async Task<IdentityResult> Confirm([FromQuery]string code,[FromQuery]string userId)
{
code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(code));
var user = await _userManager.FindByIdAsync(userId);
IdentityResult result = await _userManager.ConfirmEmailAsync(user, code);
return result;
}
我使用的是 aspnet core 托管的 blazor wasm 项目类型。我正在尝试通过发送给用户的电子邮件 link 来确认用户帐户。
单击电子邮件 link 时,用户将导航到 Blazor 前端 Web 应用程序,然后该应用程序将查询字符串参数发布到 AccountsController 操作。在控制器操作中正确接收值。
我希望此操作方法将帐户设置为已确认,但这并没有发生。我也尝试 URL 编码代码,但仍然没有 success.The userId 是一个 GUID 并作为字符串传递。
[HttpGet]
[Route(Urls.ConfirmAccount)]
public async Task<IdentityResult> Confirm([FromQuery]string code,[FromQuery]string userId)
{
var user = await _userManager.FindByIdAsync(userId);
IdentityResult result = await _userManager.ConfirmEmailAsync(user, code);
return result;
}
尝试添加 Base64UrlDecode
[HttpGet]
[Route(Urls.ConfirmAccount)]
public async Task<IdentityResult> Confirm([FromQuery]string code,[FromQuery]string userId)
{
code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(code));
var user = await _userManager.FindByIdAsync(userId);
IdentityResult result = await _userManager.ConfirmEmailAsync(user, code);
return result;
}