首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Core 3.0 ApplicationUser始终为空

是指在ASP.NET Core 3.0版本中,当使用Identity框架进行用户认证时,ApplicationUser对象始终为空的问题。

ASP.NET Core是一个跨平台的开源Web应用程序框架,它可以用于构建高性能、可扩展的Web应用程序。Identity框架是ASP.NET Core中用于处理用户认证和授权的框架。

在ASP.NET Core 3.0版本中,一些开发者报告了一个问题,即当使用Identity框架进行用户认证时,ApplicationUser对象始终为空。这意味着在进行用户认证后,无法访问到认证成功的用户对象,导致无法获取用户的信息或执行相关操作。

这个问题的原因是在ASP.NET Core 3.0中,Identity框架的默认行为发生了变化。在之前的版本中,用户认证成功后,可以通过UserManager的FindByIdAsync或FindByNameAsync方法获取到ApplicationUser对象。但在3.0版本中,这些方法返回的是null,导致ApplicationUser始终为空。

为了解决这个问题,可以通过以下步骤进行修复:

  1. 在Startup.cs文件的ConfigureServices方法中,添加以下代码:
代码语言:txt
复制
services.AddDefaultIdentity<ApplicationUser>()
    .AddEntityFrameworkStores<ApplicationDbContext>();

这将配置Identity框架使用默认的用户模型(ApplicationUser)和数据存储(ApplicationDbContext)。

  1. 在Startup.cs文件的Configure方法中,添加以下代码:
代码语言:txt
复制
app.UseAuthentication();

这将启用身份验证中间件,确保用户认证成功后可以访问到ApplicationUser对象。

通过以上步骤,应该能够解决Core 3.0 ApplicationUser始终为空的问题。

关于ASP.NET Core和Identity框架的更多信息,可以参考腾讯云的相关文档和产品:

请注意,以上答案仅针对ASP.NET Core 3.0版本中的问题,对于其他版本或不同的开发环境可能会有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在.NET Core类库中使用EF Core迁移数据库到SQL Server

前言 如果大家刚使用EntityFramework Core作为ORM框架的话,想必都会遇到数据库迁移的一些问题。.../// /// 系统应用的用户实体 /// public class ApplicationUser : BaseModel { /// /// 用户名 /// public string UserName...、使用以下命令应用迁移,生成数据库和表 dotnet ef database update 通过VS的SQL Server资源管理器查看生成数据库的结构,其中__EFMigrationsHistory每次迁移的记录表...b)、因为string类型的字段迁移到数据库之后的数据类型nvarchar(max)并且是可类型的,下面我们就使用Fluent API对ApplicationUser表字段进行配置,同样你也可以使用属性注解的方式进行配置...;//设置当前路径当前解决方案的路径 string appSettingBasePath = Directory.GetCurrentDirectory() + "/Light.AuthorityApi

1.7K60

从Membership 到 .NET4.5 之 ASP.NET Identity

ProfileProvider 来扩展用户信息   我们上面讲到有一张表aspnet_Profile是专门用来给ProfileProvider扩展用户信息的。...我们先添加一个Model继承ProfileBase来我们新的用户对象建模 在web.config配置ProfileProvider 在MVC站点中实现对我们的用户信息的管理 UserProfile的代码...Microsoft.AspNet.Identity.Core    名字就已经告诉大家了,这是ASP.NET Identity的核心了,所以主要的功能在这里面。...但是最后别忘了,我们与用户相关的操作实际上是通过Microsoft.AspNet.Identity.Core的 UserManager类来完成的。...虽然所说有的方法通过UserManager来调用,但是最后实现的还是UserStore,并且如果我们找到UserManager的定义,会发现实际上它所接收的正是在Microsoft.AspNet.Identity.Core

1.9K60

使用Identity Server 4建立Authorization Server (5)

identityserver4.readthedocs.io/en/release/quickstarts/8_entity_framework.html 安装Entity Framework相关的库 Authorization...这部分操作的官方文档在这: https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet 我们需要添加这部分代码: <ItemGroup...context.SaveChanges(); } } } 首先是分别对两个context进行迁移, 然后判断是否这些表里是的...把用户存储到数据库 可以使用自定义的用户表来存储用户数据, 但是我要用的是asp.net core identity, 所以我就不讲别的方式了....不过首先, 需要重建个项目, 并且把之前讲的所有内容都操作一遍, 因为这里要使用asp.net core mvc 模板并使用Individual User Account的验证方式: ?

1.1K50

eShopOnContainers 知多少:Identity microservice

服务简介 Identity microservice 主要用于统一的身份认证和授权,其他服务提供支撑。 提到认证,大家最熟悉不过的当属Cookie认证了,它也是目前使用最多的认证方式。...虽然ASP.NET Core Identity已经完成了绝大多数的功能,且支持第三方登录(第三方其用户颁发令牌),但若要为本地用户颁发令牌,则需要自己实现令牌的颁发和验证逻辑。...而IdentityServer4就是ASP.NET Core量身定制的实现了OpenId Connect和OAuth2.0协议的认证授权中间件。...首先是映射自定义扩展的User和Role // 映射自定义的User,Role services.AddIdentity() .AddEntityFrameworkStores...x.Authentication.CookieLifetime = TimeSpan.FromHours(2); }) .AddSigningCredential(Certificate.Get()) .AddAspNetIdentity<ApplicationUser

2.8K20

【译】尝试使用Nullable Reference Types

本文来自DotNET Core圈圈,由艾心翻译 随着.NET Core 3.0 Preview 7的发布,C#8.0已被认为是“功能完整”的。...目前,我们的目标是尽可能多地收集关于可空性使用过程中的反馈以发现问题,同时收集有关在.NET Core 3.0之后我们可以做的功能的进一步改进的反馈。...因此,除非您的目标是.NET Core 3.0或.NET Standard 2.1,否则其他语言(版本)功能可能无法使用。...对于引用类型的情况,如果Find()方法返回不出来内容,我们希望返回默认值。我们希望Resize以接受可能为的输入,但我们希望确保Resize调用的时候,引用传递的数组值始终。...但是,如果路径不为,我们希望确保始终返回一个字符串。也就是说,我们希望getFileName的返回值不为,以路径条件。这是无法表达的。 输入NotNullIfNotNull(字符串)。

3.8K10

ASP.NET Core 应用程序Startup类介绍

Startup 类 ASP.NET Core应用程序需要一个启动类,按照惯例命名为Startup。...比如在一个ASP.NET Core应用程序中,具有两个启动类Startup和StartupDevelopment,那么当我们的启动环境设置开发环境的时候,启动时将会搜索启动程序集,优先使用StartupDevelopment...下面示例将应用程序配置使用Entity Framework,Identity和MVC的服务: public void ConfigureServices(IServiceCollection services...options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity<ApplicationUser...例如,UseMvc扩展方法将路由中间件添加到请求管道,并将MVC配置默认处理程序。 有关如何使用IApplicationBuilder的更多信息,请参阅中间件。

1K20

ASP.NET Core 应用程序Startup类介绍

Startup 类 ASP.NET Core应用程序需要一个启动类,按照惯例命名为Startup。...比如在一个ASP.NET Core应用程序中,具有两个启动类Startup和StartupDevelopment,那么当我们的启动环境设置开发环境的时候,启动时将会搜索启动程序集,优先使用StartupDevelopment...下面示例将应用程序配置使用Entity Framework,Identity和MVC的服务: public void ConfigureServices(IServiceCollection services...options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity<ApplicationUser...例如,UseMvc扩展方法将路由中间件添加到请求管道,并将MVC配置默认处理程序。 有关如何使用IApplicationBuilder的更多信息,请参阅中间件。

87620
领券