首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ASP.NET时的AddSignInManager核心MVC异常

使用ASP.NET时的AddSignInManager核心MVC异常
EN

Stack Overflow用户
提问于 2019-10-30 16:40:55
回答 2查看 3.8K关注 0票数 3

我正在使用ASP.NET CoreMVC3.0API项目。我使用的是Microsoft.AspNetCore.Identity v3.0

Startup.cs中,在ConfigureServices方法中,当我键入下面的内容并运行应用程序时,会得到一个异常:

代码语言:javascript
运行
复制
var builder = services.AddIdentityCore<AppUser>();
var identityBuilder = new IdentityBuilder(builder.UserType, builder.Services);
identityBuilder.AddEntityFrameworkStores<DataContext>();
identityBuilder.AddSignInManager<SignInManager<AppUser>>();

AppUser类如下所示:

代码语言:javascript
运行
复制
using Microsoft.AspNetCore.Identity;

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

我得到的例外是:

未处理异常。Microsoft.AspNetCore.Identity.ISecurityStampValidator :一些服务无法构造(在验证服务描述符'ServiceType: System.AggregateException生命期:作用域ImplementationType: Microsoft.AspNetCore.Identity.SecurityStampValidator1[Domain.AppUser]': Unable to resolve service for type 'Microsoft.AspNetCore.Authentication.ISystemClock' while attempting to activate 'Microsoft.AspNetCore.Identity.SecurityStampValidator1Domain.AppUser'.)时出错)(验证服务描述符‘Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator : Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator1[Domain.AppUser]': Unable to resolve service for type 'Microsoft.AspNetCore.Authentication.ISystemClock' while attempting to activate 'Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator1Domain.AppUser'.)生命周期:作用域ImplementationType: Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator1[Domain.AppUser]': Unable to resolve service for type 'Microsoft.AspNetCore.Authentication.ISystemClock' while attempting to activate 'Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator1Domain.AppUser’.)时出错

验证服务描述符‘Microsoft.AspNetCore.Identity.ISecurityStampValidator :System.InvalidOperationException生命期:作用域ImplementationType: Microsoft.AspNetCore.Identity.SecurityStampValidator1[Domain.AppUser]': Unable to resolve service for type 'Microsoft.AspNetCore.Authentication.ISystemClock' while attempting to activate 'Microsoft.AspNetCore.Identity.SecurityStampValidator1Domain.AppUser'.时出错

'Microsoft.AspNetCore.Authentication.ISystemClock‘:当试图激活'Microsoft.AspNetCore.Identity.SecurityStampValidator1[Domain.AppUser]'. at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateArgumentCallSites(Type serviceType, Type implementationType, CallSiteChain callSiteChain, ParameterInfo[] parameters, Boolean throwIfCallSiteNotFound) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateConstructorCallSite(ResultCache lifetime, Type serviceType, Type implementationType, CallSiteChain callSiteChain) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.TryCreateExact(ServiceDescriptor descriptor, Type serviceType, CallSiteChain callSiteChain, Int32 slot) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.GetCallSite(ServiceDescriptor serviceDescriptor, CallSiteChain callSiteChain) at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.ValidateService(ServiceDescriptor descriptor) --- End of inner exception stack trace --- at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.ValidateService(ServiceDescriptor descriptor) at Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(IEnumerable1 serviceDescriptors、ServiceProviderOptions选项时,无法解析System.InvalidOperationException类型的服务)

-内部异常堆栈跟踪结束

( Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(IEnumerable1 serviceDescriptors, ServiceProviderOptions options) at Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection services, ServiceProviderOptions options) at Microsoft.Extensions.DependencyInjection.DefaultServiceProviderFactory.CreateServiceProvider(IServiceCollection containerBuilder) at Microsoft.Extensions.Hosting.Internal.ServiceFactoryAdapter1.CreateServiceProvider(Object containerBuilder) at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider() at Microsoft.Extensions.Hosting.HostBuilder.Build() at Api.Program.Main(String[] args) in C:\Projects\XXXXXXXX\api\Program.cs:line 19 ->(内部异常#1) System.InvalidOperationException: Error,同时验证服务描述符'ServiceType: Microsoft.AspNetCore.IdentityMicrosoft.AspNetCore.Identity.TwoFactorSecurityStampValidator1[Domain.AppUser]': Unable to resolve service for type 'Microsoft.AspNetCore.Authentication.ISystemClock' while attempting to activate 'Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator1Domain.AppUser'.:.ITwoFactorSecurityStampValidator生命周期:作用域ImplementationType:

知道我做错了什么吗?

EN

Stack Overflow用户

发布于 2020-12-30 20:08:06

要解决这个问题,在ConfigurationServices方法中的Startup.cs中,在下面的代码块之后添加services.AddAuthentication();

代码语言:javascript
运行
复制
var builder = services.AddIdentityCore<AppUser>();
var identityBuilder = new IdentityBuilder(builder.UserType, builder.Services);
identityBuilder.AddEntityFrameworkStores<DataContext>();
identityBuilder.AddSignInManager<SignInManager<AppUser>>();

对于任何跟随Neil课程的人来说,用.Net核心构建一个应用程序并做出反应的完整指南,这是他稍后提供的解决方案。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58630074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档