src/Hx.IdentityServer.Model/Data/SeedData.cs
(开头部分) 9KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using IdentityServer4.EntityFramework.DbContexts;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Security.Claims;
using IdentityModel;
using IdentityServer4.EntityFramework.Mappers;
using Hx.IdentityServer.Data;
using Hx.IdentityServer.Model;
using Hx.IdentityServer.Entity;
using Hx.IdentityServer.Common;
namespace Hx.IdentityServer.Data
{
/// <summary>
/// 种子
/// </summary>
public class SeedData
{
public static void EnsureSeedData(IServiceProvider serviceProvider)
{
//迁移,在解决方案文件路径中执行迁移,指定启动项目,和迁移项目
//dotnet ef -s src/Hx.IdentityServer -p src/Hx.IdentityServer.Model migrations add InitApplicationDb -c ApplicationDbContext
// dotnet ef -s src/Hx.IdentityServer -p src/Hx.IdentityServer.Model migrations remove -c ApplicationDbContext
// dotnet ef -s src/Hx.IdentityServer -p src/Hx.IdentityServer.Model migrations add InitPersistedGrantDb -c PersistedGrantDbContext -o Migrations/IdentityServer/PersistedGrantDb
// dotnet ef -s src/Hx.IdentityServer -p src/Hx.IdentityServer.Model migrations remove -c PersistedGrantDbContext
// dotnet ef -s src/Hx.IdentityServer -p src/Hx.IdentityServer.Model migrations add InitConfigurationDb -c ConfigurationDbContext -o Migrations/IdentityServer/ConfigurationDb
// dotnet ef -s src/Hx.IdentityServer -p src/Hx.IdentityServer.Model migrations remove -c ConfigurationDbContext
ConsoleHelper.WriteInfoLine("Seeding database...");
using (var scope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
{
{
scope.ServiceProvider.GetRequiredService<PersistedGrantDbContext>().Database.Migrate();
var context = scope.ServiceProvider.GetRequiredService<ConfigurationDbContext>();
context.Database.Migrate();
EnsureSeedData(context);
}
{
var context = scope.ServiceProvider.GetService<ApplicationDbContext>();
context.Database.Migrate();
EnsureSeedData(scope.ServiceProvider, context);
}
}
ConsoleHelper.WriteInfoLine("Done seeding database.");
}
/// <summary>
/// 客户端授权数据
/// </summary>
/// <param name="context"></param>
private static void EnsureSeedData(ConfigurationDbContext context)
{
if (!context.Clients.Any())
{
后面还有 190 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
