使用AddSignInManager时的ASP.NET Core MVC异常

Yousi

我正在使用ASP.NET Core MVC 3.0 API项目。我正在使用Microsoft.AspNetCore.Identityv3.0

Startup.cs,里面的ConfigureServices方法,当我输入下面并运行应用程序,我得到一个异常:

var builder = services.AddIdentityCore<AppUser>();
var identityBuilder = new IdentityBuilder(builder.UserType, builder.Services);
identityBuilder.AddEntityFrameworkStores<DataContext>();
identityBuilder.AddSignInManager<SignInManager<AppUser>>();

AppUser班是这样的:

using Microsoft.AspNetCore.Identity;

namespace Domain
{
    public class AppUser : IdentityUser
    {
        public string DisplayName { get; set; }
    }
}

我得到的例外是:

未处理的异常。System.AggregateException:某些服务无法构造(验证服务描述符“ ServiceType:Microsoft.AspNetCore.Identity.ISecurityStampValidator的生命周期:范围实现类型:Microsoft.AspNetCore.Identity.SecurityStampValidator`1 [Domain.AppUser]”:尝试激活“ Microsoft.AspNetCore.Identity.SecurityStampValidator`1 [Domain.AppUser]”时,无法解析类型为“ Microsoft.AspNetCore.Authentication.ISystemClock”的服务。)(验证服务描述符“ ServiceType:Microsoft.AspNetCore”时出错.Identity.ITwoFactorSecurityStampValidator寿命:作用域实现类型:Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator`1 [Domain.AppUser]':无法为类型'Microsoft.AspNetCore.Authentication解析服务。

System.InvalidOperationException:验证服务描述符'ServiceType:Microsoft.AspNetCore.Identity.ISecurityStampValidator生存期:范围实现类型:Microsoft.AspNetCore.Identity.SecurityStampValidator`1 [Domain.AppUser]':无法解析类型为Microsoft的服务。尝试激活“ Microsoft.AspNetCore.Identity.SecurityStampValidator'1 [Domain.AppUser]”时遇到AspNetCore.Authentication.ISystemClock。

System.InvalidOperationException:尝试激活“ Microsoft.AspNetCore.Identity.SecurityStampValidator`1 [Domain.AppUser]”时,无法解析类型为“ Microsoft.AspNetCore.Authentication.ISystemClock”的服务。

在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory(Type.ServiceType,TypeimplementType,CallSiteChain callSiteChain,ParameterInfo []参数,布尔throwIfCallSiteNotFound)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateConstructorCallite implementationType,CallSiteChain callSiteChain)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.TryCreateExact(ServiceDescriptor描述符,类型的serviceType,CallSiteChain callSiteChain,的Int32时隙)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.GetCallSite(ServiceDescriptor serviceDescriptor,CallSiteChain callSiteChain)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.ValidateService(ServiceDescriptor描述符)
-内部异常堆栈跟踪的结尾-
在Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.ValidateService(ServiceDescriptor描述符)
在Microsoft.Extensions.DependencyInjection .ServiceProvider..ctor(IEnumerable`1 serviceDescriptors,ServiceProviderOptions选项)
-内部异常堆栈跟踪的结尾-
验证服务描述符'ServiceType:Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator生命周期:范围实现类型:Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator`1 [Domain.AppUser]':无法解析类型为Microsoft.AspNetCore.Authentication的服务。 ISystemClock”,同时尝试激活“ Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator`1 [Domain.AppUser]”。---> System.InvalidOperationException:尝试激活“ Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator`1 [Domain.AppUser]”时,无法解析类型为“ Microsoft.AspNetCore.Authentication.ISystemClock”的服务。在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateArgumentCallSites(类型serviceType,
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.GetCallSite(ServiceDescriptor serviceDescriptor,CallSiteChain)中的Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.TryCreateExact(ServiceDescriptor描述符,type serviceType,CallSiteChain callSiteChain,Int32插槽) .ServiceLookup.ServiceProviderEngine.ValidateService(ServiceDescriptor描述符)-内部异常堆栈跟踪的结尾-在Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.ValidateService(ServiceDescriptor描述符)在Microsoft.Extensions.DependencyInjection.ServiceProvider.ctor( IEnumerable`1 serviceDescriptors,ServiceProviderOptions选项)

知道我在做什么错吗?

Nan Yu

最好使用AddDefaultIdentity来帮助您注册SignInManager您可以参考以下步骤:

  1. 编辑项目文件以安装软件包:

    <Project Sdk="Microsoft.NET.Sdk.Web">
    
        <PropertyGroup>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        </PropertyGroup>
    
        <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" />
        <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.0.0" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
        </ItemGroup>
    
    </Project>
    
  2. 创建DataContext

    public class DataContext : IdentityDbContext<AppUser>
    {
        public DataContext(DbContextOptions<DataContext> options)
            : base(options)
        {
        }
    
        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);
            // Customize the ASP.NET Identity model and override the defaults if needed.
            // For example, you can rename the ASP.NET Identity table names and more.
            // Add your customizations after calling base.OnModelCreating(builder);
        }
    }
    
  3. Startup.cs:

    services.AddDbContext<DataContext>(options =>
        options.UseSqlServer(
            Configuration.GetConnectionString("DefaultConnection")));
    
    services.AddDefaultIdentity<AppUser>()
    .AddEntityFrameworkStores<DataContext>();
    
  4. 注入SignInManager

    private readonly UserManager<AppUser> _userManager;
    private readonly SignInManager<AppUser> _signInManager;
    private readonly DataContext _context; 
    
    public WeatherForecastController(UserManager<AppUser> userManager,SignInManager<AppUser> signInManager, DataContext dbContext)
    {
        _userManager = userManager;
        _signInManager = signInManager;
        _context = dbContext;
    
    }
    

并使用像:

await _signInManager.SignInAsync(user, isPersistent: false);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从tempdata视图中的Asp.Net Mvc显示异常

来自分类Dev

处理ASP.NET MVC控制器中的异常

来自分类Dev

ASP.NET MVC 5数据缓存-行为异常

来自分类Dev

404.20异常未被ASP.net Core捕获

来自分类Dev

使用ASP.NET Core和MVC存储本地文件

来自分类Dev

使用自定义位置时,如何在asp.net core mvc中指定视图位置?

来自分类Dev

提交简单表单MVC ASP.Net网站的StackOverflow异常

来自分类Dev

ASP.NET Core MVC(以前的MVC 6)Razor错误未被异常过滤器捕获

来自分类Dev

如何解决ASP.NET Core MVC项目中的“未找到视图”异常

来自分类Dev

WebApi和MVC(包括Razor页面)的Asp.net Core 3.0单独的全局异常处理

来自分类Dev

在ASP.NET core 3.0中,当我应用Except()方法时,出现以下异常

来自分类Dev

在ASP MVC .Net Core中何处使用/放置jQuery?

来自分类Dev

ASP.NET Core MVC-无效的操作异常没有Ienumerable <SelectListItem>类型的viewdata

来自分类Dev

如何使AJAX错误直接指向ASP.NET Core MVC中的开发人员异常页面?

来自分类Dev

使用ASP.NET Core MVC获取用户输入

来自分类Dev

ASP.NET Core令牌获取异常

来自分类Dev

与ASP.NET MVC BeginExecuteCore等效的ASP.NET Core

来自分类Dev

ASP.NET Core Razor-全局异常处理程序

来自分类Dev

ASP.NET Core MVC视图附件

来自分类Dev

处理ASP.NET Core筛选器引发的异常

来自分类Dev

Mono ASP.Net MVC EntityFramework异常

来自分类Dev

如何在ASP.NET Core中进行异常处理?

来自分类Dev

ASP.NET MVC Core和Dapper中的全局异常/错误处理

来自分类Dev

ASP.NET Core MVC 和 EF Core 1.1

来自分类Dev

Asp.Net MVC Core 2 - 在 _Layout 上使用 ViewBag

来自分类Dev

Asp.Net Core MVC:无法使用区域配置路由

来自分类Dev

ASP.NET MVC Core - 通过 HttpClient 使用 API

来自分类Dev

当 ASP.NET Core 2.2 项目出现特定异常时,如何重定向用户?

来自分类Dev

ASP .Net Core 空数组查询参数绑定异常

Related 相关文章

  1. 1

    从tempdata视图中的Asp.Net Mvc显示异常

  2. 2

    处理ASP.NET MVC控制器中的异常

  3. 3

    ASP.NET MVC 5数据缓存-行为异常

  4. 4

    404.20异常未被ASP.net Core捕获

  5. 5

    使用ASP.NET Core和MVC存储本地文件

  6. 6

    使用自定义位置时,如何在asp.net core mvc中指定视图位置?

  7. 7

    提交简单表单MVC ASP.Net网站的StackOverflow异常

  8. 8

    ASP.NET Core MVC(以前的MVC 6)Razor错误未被异常过滤器捕获

  9. 9

    如何解决ASP.NET Core MVC项目中的“未找到视图”异常

  10. 10

    WebApi和MVC(包括Razor页面)的Asp.net Core 3.0单独的全局异常处理

  11. 11

    在ASP.NET core 3.0中,当我应用Except()方法时,出现以下异常

  12. 12

    在ASP MVC .Net Core中何处使用/放置jQuery?

  13. 13

    ASP.NET Core MVC-无效的操作异常没有Ienumerable <SelectListItem>类型的viewdata

  14. 14

    如何使AJAX错误直接指向ASP.NET Core MVC中的开发人员异常页面?

  15. 15

    使用ASP.NET Core MVC获取用户输入

  16. 16

    ASP.NET Core令牌获取异常

  17. 17

    与ASP.NET MVC BeginExecuteCore等效的ASP.NET Core

  18. 18

    ASP.NET Core Razor-全局异常处理程序

  19. 19

    ASP.NET Core MVC视图附件

  20. 20

    处理ASP.NET Core筛选器引发的异常

  21. 21

    Mono ASP.Net MVC EntityFramework异常

  22. 22

    如何在ASP.NET Core中进行异常处理?

  23. 23

    ASP.NET MVC Core和Dapper中的全局异常/错误处理

  24. 24

    ASP.NET Core MVC 和 EF Core 1.1

  25. 25

    Asp.Net MVC Core 2 - 在 _Layout 上使用 ViewBag

  26. 26

    Asp.Net Core MVC:无法使用区域配置路由

  27. 27

    ASP.NET MVC Core - 通过 HttpClient 使用 API

  28. 28

    当 ASP.NET Core 2.2 项目出现特定异常时,如何重定向用户?

  29. 29

    ASP .Net Core 空数组查询参数绑定异常

热门标签

归档