RequireConfirmedEmail用于正常登录但不包括外部登录(标识核心)

时间:2017-05-29 18:08:55

标签: asp.net asp.net-mvc asp.net-identity identity claims-based-identity

在身份选项设置RequireConfirmedEmail会对用户签名的结果返回SignInResult.NotAllowed,并在CanSignInAsync进行测试

if (Options.SignIn.RequireConfirmedEmail && !(await UserManager.IsEmailConfirmedAsync(user)))

但这也适用于外部登录,这是我们只想在正常登录时使用的行为

我们已经知道我们可以扩展SignInManager<TUser>但我们认为可能有人有更简单更优雅的解决方案,任何人?

1 个答案:

答案 0 :(得分:3)

最简单的解决方案是在创建外部用户时设置EmailConfirmed = true,就像在默认模板方法ExternalLoginConfirmation中一样:

var user = new ApplicationUser { UserName = model.Email, 
                                 Email = model.Email, 
                                 EmailConfirmed = true };