asp.net – 注册外部登录时CreateUserAsync失败
发布时间:2020-12-16 07:17:51 所属栏目:asp.Net 来源:网络整理
导读:我正在使用asp.net mvc 5模板处理单页应用程序并注册外部登录(在此实例中为google)失败并出现验证异常 – “UserId字段是必需的”. 有问题的代码: // POST api/Account/RegisterExternal [OverrideAuthentication][HostAuthentication(DefaultAuthenticatio
我正在使用asp.net mvc 5模板处理单页应用程序并注册外部登录(在此实例中为google)失败并出现验证异常 – “UserId字段是必需的”.
有问题的代码: // POST api/Account/RegisterExternal [OverrideAuthentication] [HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)] [Route("RegisterExternal")] public async Task<IHttpActionResult> RegisterExternal(RegisterExternalBindingModel model) { try { if (!ModelState.IsValid) { return BadRequest(ModelState); } ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity); if (externalLogin == null) { return InternalServerError(); } IdentityUser user = new IdentityUser//(model.UserName); { UserName = model.UserName }; user.Logins.Add(new IdentityUserLogin { LoginProvider = externalLogin.LoginProvider,ProviderKey = externalLogin.ProviderKey }); IdentityResult result = await UserManager.CreateAsync(user); IHttpActionResult errorResult = GetErrorResult(result); if (errorResult != null) { return errorResult; } return Ok(); } catch (Exception exception) { throw; } } 我很感激帮助 解决方法
修复很简单,但我觉得很奇怪,模板生成的代码不能开箱即用. IdentityUserLogin对象具有必须设置的UserID属性.
IdentityUser user = new IdentityUser { UserName = model.UserName }; user.Logins.Add(new IdentityUserLogin() { LoginProvider = externalLogin.LoginProvider,ProviderKey = externalLogin.ProviderKey,UserId = user.Id }); IdentityResult result = await UserManager.CreateAsync(user); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 从RouteBase.GetVirtualPath返回绝对路径
- asp.net-mvc – 路由参数,自定义模型绑定器还是动作过滤器?
- 具有多个身份验证过滤器的ASP.net Web API 2控制器
- ASP.NET性能在32位/ 64位服务器之间降低
- 表格在asp.net中提交
- asp.net – 优化的捆绑包在从网站请求时返回404
- asp.net-mvc-2 – 我的MVC2站点需要一个crossdomain.xml文件
- 如何检测当前应用程序池是否在IIS7.5和Asp.Net 3.5中清理
- asp.net批量多选文件上传解决方案
- asp.net-mvc – Rotativa / Wkhtmltopdf图像无法显示
推荐文章
站长推荐
- asp.net-mvc – MVC4捆绑通配符 – *与{version}
- asp.net-core – 当我们执行“kpm restore”时存
- asp.net-mvc – System.Web.MVC.UpdateModel可以
- ASP.NET实现的简单易用文件上传类
- asp.net – 缓存特定的Javascript和CSS文件
- asp.net – 当完全执行OnResultExecuted和OnResu
- asp.net – 如何发布站点从命令行与一些发布配置
- asp.net-mvc – 在ASP.NET MVC视图中递归
- asp.net – 编码撇号
- WPF 从 .net core 3.1到 .net 5.0
热点阅读