gpt4 book ai didi

asp.net-core-mvc - SignInManager::ExternalLoginSignInAsync返回IsNotAllowed以进行社交登录

转载 作者:行者123 更新时间:2023-12-04 13:18:36 24 4
gpt4 key购买 nike

我正在使用Microsoft.NetCore.App v1.1.0(2016年11月16日),并已构建了一个标准的MVC Web应用程序,并根据Microsoft Docs的建议在其中添加了Microsoft和Google的Social Login。
在使用Google(或Microsoft)进行首次登录期间,它可以按预期方式工作-即,在对我的Google帐户进行身份验证之后,我的WebApp向我显示了一个注册网页,要求我提供一个电子邮件地址来与我的Google帐户关联,然后登录我的WebApp。不幸的是,第二次登录时也会发生同样的情况,因此显然注册失败,因为该电子邮件地址已经在我的AspNetUsers表中。
我在AccountController::ExternalLoginCallback()中的_signInManager.ExternalLoginSignInAsync()上设置了一个断点。首次登录期间,它返回Result.Succeeded false,可能是因为未注册电子邮件。在第二次登录期间,它返回Result.IsNotAllowed,该结果不会由以下一系列“if”语句处理,因此将由“else”块处理-与Result.Succeeded false相同。
有人知道Result.IsNotAllowed是什么意思,为什么要设置它?有解决方法吗?
谢谢威尔

最佳答案

我只是在同一件事上遇到麻烦。您可能在startup.cs中包含以下行:
services.AddIdentity(config => config.SignIn.RequireConfirmedEmail = true)
如果您在github上查看Identity源代码,您将看到在尚未确认电子邮件时返回IsNotAllowed。这是第三方提供商还是本地帐户都没有关系。要解决此问题,只需在创建和存储ApplicationUser时将EmailConfirmed = true设置为即可。在模板项目中,它是ExternalLoginConfirmation方法。
var user = new ApplicationUser { UserName = model.Email, Email = model.Email, EmailConfirmed = true};

关于asp.net-core-mvc - SignInManager::ExternalLoginSignInAsync返回IsNotAllowed以进行社交登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41598437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com