Проблема относительно ASP.NET основные роли пользователей
- Привет! Я пытаюсь добавить одного модератора в свой список ASP.NET веб-сайт Core 2.0. Все остальные пользователи будут простыми пользователями, кроме этого. Итак, в основном мне нужны две роли: одна называется пользователь, а другая-модератор. До сих пор я придумал решение, которое приходит со странной ошибкой. Проблема в том, что при первом вызове await (мой метод асинхронен) метод ничего не делает, кажется, что он застрял там, хотя мой сайт успешно запускается. Если бы кто-нибудь мог помочь мне с этим, я был бы рад.
Что я уже пробовал:
То, что я сделал до сих пор, - это создание метода в классе Startup моего проекта для создания моих ролей. Затем я вызываю этот метод из метода Configure класса Startup. Это и есть метод:
private async Task CreateRoles(IServiceProvider serviceProvider) { //Initialize role manager var roleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>(); //We get if the moderator role already exists (This is exactly where the method is getting stuck) var moderatorRoleExists = await roleManager.RoleExistsAsync(Roles.Moderator); //We get if the user role already exists var userRoleExists = await roleManager.RoleExistsAsync(Roles.User); // if the moderator role doesn't exist if (!moderatorRoleExists) { //create the role and seed them to the database: await roleManager.CreateAsync(new IdentityRole(Roles.Moderator)); } // if the moderator user doesn't exist if (!userRoleExists) { //create the role and seed them to the database: await roleManager.CreateAsync(new IdentityRole(Roles.User)); } }
И вот как я называю его из метода Configure:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider) { if (env.IsDevelopment()) { app.UseBrowserLink(); app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseAuthentication(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); CreateRoles(serviceProvider); }