Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exceção Lançada

Presados, preciso que alguém me ajude a entender pq essa excessão é lançada em meu codigo.

System.NotSupportedException: No IUserTwoFactorTokenProvider named 'Default' is registered.

Metodo de cadastro!
public Result CadastraUsuario(CriarUsuarioDto criaDto)
        {
            Usuario usuario = _mapper.Map<Usuario>(criaDto);
            IdentityUser<int> usuarioIdentity = _mapper.Map<IdentityUser<int>>(usuario);
            Task<IdentityResult> resultado = _userManager.CreateAsync(usuarioIdentity, criaDto.Password);
            if (resultado.Result.Succeeded)
            {
                var code = _userManager.GenerateEmailConfirmationTokenAsync(usuarioIdentity).Result;
                return Result.Ok().WithSuccess(code);
            }
            return Result.Fail("Falha ao cadastrar usuário!");

` ConfigureServices

` public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<AuthDbContext>(opts => opts.UseSqlServer(Configuration.GetConnectionString("SqlServer")));
        services.AddIdentity<IdentityUser<int>, IdentityRole<int>>().AddEntityFrameworkStores<AuthDbContext>();
        services.Configure<IdentityOptions>(options =>
        {
            options.Password.RequireUppercase = true;
            options.Password.RequiredLength = 8;
            options.Password.RequireNonAlphanumeric = true;
            options.User.RequireUniqueEmail = true;
            options.SignIn.RequireConfirmedEmail = true;
        });
        services.AddControllers();
        services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
        services.AddScoped<CadastroService, CadastroService>();
        services.AddScoped<LoginService, LoginService>();
        services.AddScoped<TokenServices, TokenServices>();
        services.AddScoped<LogoutService, LogoutService>();
}`
2 respostas

Pessoal, Conseguir resolver o problema com uma resposta do StackFlow

no campo:

services.AddIdentity<IdentityUser<int>, IdentityRole<int>>().AddEntityFrameworkStores<AuthDbContext>();

pelo que entendi dessa forma não está usando a parte de tokens.

services.AddIdentity<IdentityUser<int>, IdentityRole<int>>().AddEntityFrameworkStores<AuthDbContext>().AddDefaultTokenProviders();

então a solução foi adicionar o DefaultToken através do complemento .AddDefaultTokenProviders(); depois disso tudo funcionou corretamente

solução!

Antonione, que bacana que conseguiu resolver, acredito que a melhor maneira seja usando o DefaultToken mesmo, parabéns!

Att.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software