Почему попытка входа в систему возвращает {NotAllowed} в методе PasswordSignInAsyn c (ASP. NET) - PullRequest
0 голосов
/ 11 июля 2020

Я использовал личность в моем проекте ASP. NET, он автоматически создал функцию входа и регистрации, и я могу зарегистрироваться на веб-сайте, после регистрации учетная запись будет авторизована, и я могу использовать все функции Я сделал это, но если я выйду из системы и снова попытаюсь войти в ту же учетную запись, то процесс входа всегда завершается ошибкой. Учетные записи хранятся в базе данных следующим образом: https://i.imgur.com/M1EbfGj.png

Я не менял код, созданный Visual Studio 2019, и после отладки все, что я знаю, это то, что пароль правильно переданы в базу данных, но результат отображается как {NotAllowed}, строка, в которой это происходит, -

var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
            

, если кто-то хочет увидеть весь проект, его можно найти в https://github.com/Alysty/TaskManager

1 Ответ

0 голосов
/ 11 июля 2020

Файл, который, скорее всего, является вашей проблемой: TaskManager / TaskManager / Areas / Identity / IdentityHostingStartup.cs

Местоположение требует подтверждения учетной записи в этой строке:

services.AddDefaultIdentity<TaskManagerUser>(options => options.SignIn.RequireConfirmedAccount = true)

Я предполагаю, что ваша учетная запись не подтверждена, поэтому вам необходимо подтвердить ее или удалить это ограничение.

using System;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.UI;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using TaskManager.Areas.Identity.Data;
using TaskManager.Data;

[assembly: HostingStartup(typeof(TaskManager.Areas.Identity.IdentityHostingStartup))]
namespace TaskManager.Areas.Identity
{
    public class IdentityHostingStartup : IHostingStartup
    {
        public void Configure(IWebHostBuilder builder)
        {
            builder.ConfigureServices((context, services) => {
                services.AddDbContext<ApplicationDbContext>(options =>
                    options.UseSqlServer(
                        context.Configuration.GetConnectionString("ApplicationDbContextConnection")));

                services.AddDefaultIdentity<TaskManagerUser>(options => options.SignIn.RequireConfirmedAccount = true)
                    .AddEntityFrameworkStores<ApplicationDbContext>();
            });
        }
    }
}
...