c# - ASP.Net Identity - AddLogin userId 变为 null

标签 c# asp.net asp.net-identity

我使用 ASP.Net Identity,它按预期工作,除非关联外部登录提供程序。

例如,当我调用 Repository.UserManager.AddLogin() (或 Async)时,我收到异常:

The UserId field is required.

在调试时,我确保将正确的 userId 传递给函数,我什至对其进行了硬编码。

对于loginInfo,我尝试了 Facebook 和 Google 提供商。

enter image description here

在监 window 口中,我们可以看到我正确地为该方法指定了用户 ID,并且在监 window 口中 User.Id 具有正确的值,而 userIdnull

不幸的是,源代码尚未在 Codeplex 上公开,因此我无法查看实现。

最佳答案

我设法通过重新安装(更新)对 EntityFramework 和 Microsoft.AspNet.Identity 的引用来解决此问题。

但是,这将导致与现有 CodeFirst 迁移和数据库不兼容。

由于我的服务尚未上线,因此删除数据库并重新创建迁移对我来说不是问题,但对于已经运行的服务来说,这可能会破坏交易。

我还做了什么,更改了 IdentityModels.cs 函数 onModelCreating 中的一行:

modelBuilder.Entity<IdentityUserLogin>().HasKey<string>(l => l.UserId);

至:

modelBuilder.Entity<IdentityUserLogin>().HasKey(l => new { l.UserId, l.LoginProvider, l.ProviderKey });

关于c# - ASP.Net Identity - AddLogin userId 变为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21814841/

相关文章:

c# - 如何修复电子邮件确认 - 在 .NET Core 中,它不起作用

asp.net - 如何从 ASP.NET Identity 获取用户列表?

c# - 在 libgit2sharp-SSH 中使用 SshUserKeyCredentials 进行身份验证时遇到问题

c# - 是否有在现有模板中添加 css 模板的解决方案?

asp.net - 数据绑定(bind)到 View 模型不起作用

c# - 在为存储过程设置参数时,我可以在 new SqlParameter 的构造函数中设置 TypeName 吗?

asp.net - 如何将 ASP.Net Identity User Email 属性引用为外键

c# - WCF 服务的 VS2003 Web 引用有额外的 "IdSpecified"参数

c# - 逐帧播放mp3

c# - 虚拟网络摄像头输入为字节流