嘿那里,
我堅持將 Scoped Service 從 MVC 5 轉換為 6。我想用 Roles 播種一個物體資料庫,我創建了一個模型,但在課程中我看起來它有 mvc5。
我試圖適應mvc 6,沒有成功。
我的 UserRoleInitializer 模型:
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Threading.Tasks;
namespace eVote.Models
{
public static class UserRoleInitializer
{
public static async Task InitializeAsync(IServiceProvider serviceProvider)
{
var roleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
var userManager = serviceProvider.GetRequiredService<UserManager<DefaultUser>>();
string[] roleNames = { "Admin", "User" };
IdentityResult roleResult;
foreach (var role in roleNames)
{
var roleExists = await roleManager.RoleExistsAsync(role);
if (!roleExists)
{
roleResult = await roleManager.CreateAsync(new IdentityRole(role));
}
}
var email = "[email protected]";
var password = "Qwerty123!";
if (userManager.FindByEmailAsync(email).Result == null)
{
DefaultUser user = new()
{
Email = email,
UserName = email,
FirstName = "Admin",
LastName = "Adminsson",
Address = "Adstreet 3",
City = "Big City",
ZipCode = "12345"
};
IdentityResult result = userManager.CreateAsync(user, password).Result;
if (result.Succeeded)
{
userManager.AddToRoleAsync(user, "Admin").Wait();
}
}
}
}
}
MVC 5 解決方案

如何在 Program.cs 的 MVC 6 中實作這些行?
uj5u.com熱心網友回復:
如果你想在 .Net6 中配置它,你可以使用這個代碼:
程式.cs
var app = builder.Build();
using (var scope = app.Services.CreateScope())
{
var service = scope.ServiceProvider;
try
{
await UserRoleInitializer.InitializeAsync(service);
}
catch (Exception ex)
{
//..........
}
}
//other middlewares
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/522729.html
下一篇:tcp/ip套接字接收器解碼型別
