Я настраиваю проект в соответствии с руководством по Identity Server 4 http://docs.identityserver.io/en/latest/quickstarts/6_aspnet_identity.html.
Сочетание которого включает в себя все, включая API, JavaScript клиент, MVC клиент и сервер удостоверений согласно указанным учебникам.
Он использует постоянное хранилище EF, а не в памяти, и использует ASP Core Identity, как, наконец, коснуться.
С SQL Сервером он работает нормально, однако я хотел перейти на PostgresSQL как часть самообучения (и, честно говоря, предпочел бы это вместо sqlserver).
Все работало до того момента, когда я захожу в систему, когда выдает эту ошибку:
InvalidOperationException: отсутствует подпретензия
Я прошел весь код, но не могу понять, почему это так.
Только изменения, которые я сделал это в файле запуска Identity Server 4:
// CHANGE HERE: UseNpgsql instead of UseSqlServer
services.AddDbContext<ApplicationDbContext>(options => options.UseNpgsql(Configuration.GetConnectionString("PostgresqlConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
var migrationsAssembly = typeof(Startup).GetTypeInfo().Assembly.GetName().Name;
string connectionString = Configuration.GetConnectionString("PostgresqlConnection").ToString();
var builder = services.AddIdentityServer(options =>
{
options.Events.RaiseErrorEvents = true;
options.Events.RaiseInformationEvents = true;
options.Events.RaiseFailureEvents = true;
options.Events.RaiseSuccessEvents = true;
})
.AddConfigurationStore(options =>
{
// CHANGE HERE: UseNpgsql instead of UseSqlServer
options.ConfigureDbContext = b => b.UseNpgsql(connectionString,
sql => sql.MigrationsAssembly(migrationsAssembly));
})
.AddOperationalStore(options =>
{
// UseNpgsql instead of UseSqlServer
options.ConfigureDbContext = b => b.UseNpgsql(connectionString,
sql => sql.MigrationsAssembly(migrationsAssembly));
});
Куда бы я ни посмотрел, это единственное изменение, которое мне нужно сделать.
Net Используется Core 3.1.
Любой совет, чего не хватает?
РЕДАКТИРОВАТЬ 1:
Кажется, проблема в ASP Core Identity и PostgreSQL. До сих пор не могу понять, как это исправить.