Я хотел добавить свои собственные пользовательские данные для пользователей, поэтому я следовал инструкциям здесь: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/add-user-data?view=aspnetcore-2.2&tabs=visual-studio
У меня уже было существующее приложение, поэтому я не мог следовать этому руководству построчно (в моем существующем приложении уже есть база данных пользователей). Я не очень далеко продвинулся в этом, когда столкнулся с вышеуказанной ошибкой Я использовал леса, чтобы попытаться добавить
System.InvalidOperationException: схема уже существует: Identity.Application
Я пошел на несколько разных переполнений стека и git-страниц, таких как следующее безрезультатно
https://github.com/aspnet/AspNetCore.Docs/issues/8223 (наиболее актуально, я думаю)
https://github.com/aspnet/Security/issues/1412
Сбой AddIdentity () "InvalidOperationException: схема уже существует: Identity.Application"
похоже, что многие другие люди добавляют проблемы с повторным вызовом идентификатора, но я только один раз вызываю его в своем коде. Я также попытался полностью закомментировать строку в стартапе, а затем она говорит, что ничего не определено, и злится на меня. Я также попытался переключить форму по умолчанию, как показано ниже.
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<IdentityUser, IdentityRole>()
// services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<WebApp1.Models.WebApp1Context>()
.AddDefaultTokenProviders();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseMvc();
}
Я чувствую, что мне не следует выдавать исключение, и все же .... есть какой-нибудь совет по поводу исправления?
edit: соответствующие шаги, которые я предпринял, пока не получил эту ошибку. Создайте составную часть проекта для использования отдельных учетных записей пользователей в процессе creation.override с помощью scaffolder и создайте модель вторичного пользователя, которую можно переопределить. выполнить миграцию и обновление базы данных.