总是需要调用 UserManager.IsEmailConfirmedAsync() 吗?

Is calling UserManager.IsEmailConfirmedAsync() always required?

我见过很多具有以下顺序的代码示例:

var user = await userManager.FindByNameAsync(userName);
bool emailConfirmed = userManager.IsEmailConfirmedAsync(user);

我想知道为什么需要第二次调用。在我的测试中,user.EmailConfirmed 属性 总是在第一次调用后正确设置。

是否存在第一次调用无法正确设置 属性 的情况?

在您的情况下,函数调用不是必需的,因为数据存储在您的数据库中并由 FindBy... 调用返回,如您所指出的。

该函数的目的是用于可能需要查询外部系统(例如电子邮件验证 micro-service)以确定电子邮件地址是否已验证的自定义 UserManager 实现。该函数实际上更像是 UserManager 界面中的占位符,用于可能实现附加功能的其他解决方案 - 或者用于使用模拟进行单元测试。

在您的情况下,您没有理由必须拨打该电话。