当前位置: 首页 > news >正文

网站新建网页网站备案法律

网站新建网页,网站备案法律,江门做网站的公司,网站建设实施计划上几篇#xff0c;我们创建了客户端#xff0c;scope#xff0c;启动时#xff0c;IdentityServer把这些配置数据加载至内存#xff0c;但是#xff0c;如果我们想要更改配置#xff0c;就必须停掉IdentityServer#xff0c;然后重新启动。且IdentityServe在r运行过程中… 上几篇我们创建了客户端scope启动时IdentityServer把这些配置数据加载至内存但是如果我们想要更改配置就必须停掉IdentityServer然后重新启动。且IdentityServe在r运行过程中还会生成临时数据如授权码、是否同意的按钮选择、以及refresh token。默认情况下这些也存储在内存中。将以上这些数据存储在数据库中进行数据持久化方便重启跨多个IdentityServer实例这个持久化我们可以使用IdentityServer4 Entity Framework除了手动配置EF支持之外还有一个IdentityServer模板可以使用dotnet new is4ef创建一个支持EF的新项目。IdentityServer4.EntityFrameworknuget包实现了所需的存储和服务主要使用以下两个DbContexts:ConfigurationDbContext - 作用于注册数据如客户端资源scope等等PersistedGrantDbContext - 作用于临时操作数据如授权码refresh tokens这些context适用于任何ef core兼容的关系型数据库sqlservermysql。可以在IdentityServer4.EntityFramework.Storage包中找到contextentitiesIdentityServer4 storesIdentityServer4.EntityFramework包括了注册的扩展方法且包括了IdentityServer4.EntityFramework.Storage1.添加nuget引用cd .\IdentityServer\ dotnet add package IdentityServer4.EntityFramework 2.添加对mysql的支持dotnet add package MySql.Data.EntityFrameworkCore 3.数据迁移IdentityServer4.EntityFramework.Storage包存在包含映射自IdentityServer模型的实体类随着IdentityServer的模型的更改IdentityServer4.EntityFramework.Storage中的实体类也将更改所以需要使用者随着时间的推移升级使用这个包这个过程需要负责在数据库架构以及在实体类更改时对该数据库架构进行必要的更改。最好的方式就是使用EF数据迁移(EF migrations)这里官方只提供了针对sqlserver的sql脚本可以看一下做个了解。4.重新配置存储在Startup.csusing Microsoft.EntityFrameworkCore; using System.Reflection; //这里用到了反射var migrationsAssembly  typeof(Startup).GetTypeInfo().Assembly.GetName().Name;//3308为宿主机端口映射docker mysql容器默认端口3306 const string connectionString  Persist Security InfoFalse;databaseIdentityServer4;serverlocalhost;port3308;Connect Timeout30;user idroot; pwd123456;services.AddIdentityServer().AddTestUsers(TestUsers.Users).AddConfigurationStore(options {options.ConfigureDbContext  b  b.UseMySQL(connectionString,sql  sql.MigrationsAssembly(migrationsAssembly));}).AddOperationalStore(options {options.ConfigureDbContext  b  b.UseMySQL(connectionString,sql  sql.MigrationsAssembly(migrationsAssembly));}); 因为我们在IdentityServer.csproj中使用EF迁移所以通过对MigrationsAssembly的调用来告诉Entity Framework 的宿主项目(IdentityServer.csproj)将包含迁移代码the migrations code。这是必要的因为宿主项目(IdentityServer.csproj)与包含DbContext类的项目两者是位于不同的程序集中(IdentityServer4.EntityFramework.Storage)。5.创建迁移一旦将IdentityServer配置为使用 Entity Framework Core我们将需要生成一些迁移-migrations。Entity Framework Core CLIMicrosoft.EntityFrameworkCore.Design nuget包#安装ef core 工具 dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design#cd到IdentityServer项目目录 dotnet ef migrations add InitialIdentityServerPersistedGrantDbMigration -c PersistedGrantDbContext -o Data/Migrations/IdentityServer/PersistedGrantDbdotnet ef migrations add InitialIdentityServerConfigurationDbMigration -c ConfigurationDbContext -o Data/Migrations/IdentityServer/ConfigurationDb 温故而知新还记得在VS的Package Manager Console是如何执行命令创建迁移的吗#第一步Add-Migration InitialCreate#第二步Update-Database 6.初始化数据库现在我们已经完成了迁移我们可以编写代码从迁移-migrations创建数据库。我们还可以使用在前面的quickstart中定义的内存配置数据来为数据库初始化种子当然这个seed最好只是在调试环境下执行。官方提示在这个快速入门中使用的方法主要是使IdentityServer更容易启动和运行。您应该设计适合自己体系结构的数据库创建和维护策略。在Startup.cs中增加下面的初始化方法:using System.Linq; using IdentityServer4.EntityFramework.DbContexts; using IdentityServer4.EntityFramework.Mappers;private void InitializeDatabase(IApplicationBuilder app) {using (var serviceScope  app.ApplicationServices.GetServiceIServiceScopeFactory().CreateScope()){serviceScope.ServiceProvider.GetRequiredServicePersistedGrantDbContext().Database.Migrate();var context  serviceScope.ServiceProvider.GetRequiredServiceConfigurationDbContext();context.Database.Migrate();if (!context.Clients.Any()){foreach (var client in Config.Clients){context.Clients.Add(client.ToEntity());}context.SaveChanges();}if (!context.IdentityResources.Any()){foreach (var resource in Config.IdentityResources){context.IdentityResources.Add(resource.ToEntity());}context.SaveChanges();}if (!context.ApiResources.Any()){foreach (var resource in Config.Apis){context.ApiResources.Add(resource.ToEntity());}context.SaveChanges();}} }public void Configure(IApplicationBuilder app) {// this will do the initial DB populationInitializeDatabase(app);// the rest of the code that was already here// ... } 上面的InitializeDatabase方法可以方便地 seed the database但是这种方法在每次运行应用程序时都留进去执行并不理想。一旦填充数据库初始化数据之后就可以考虑删除对其之调用。7.运行客户端应用这个就简略些上个命令即可cd src\IdentityServer dotnet run 长按二维码关注点外卖先领券
http://www.yutouwan.com/news/123037/

相关文章:

  • h5网站模板源码建设网站费用一般多少
  • 福州网站制作公司营销wordpress tag 列表
  • 南昌网站建设优化公司排名电子商务论文网站建设
  • 做直播教程的网站推广普通话黑板报内容
  • 佛山市网站建站网站win8 metro风格网站后台管理模板
  • 网站建设七个步骤凡科活动不良记录多久解除
  • linux做网站服务器吗wordpress绑定手机号
  • 服装微信商城网站建设公司介绍怎么写
  • 开发手机端网站模板手机端是什么
  • 网站开发最快的语言wordpress postname
  • 做网站最大的公司郑州最新出入通知
  • 最受欢迎的wordpress主题廊坊企业网站排名优化
  • 做国外直播网站成都网站优化维护
  • 电商网站制作在线直播系统开发
  • 做试玩网站推广展示类网站
  • 珠宝网站制作的理念如何向google提交网站
  • 手机网站设计公司可去亿企邦火车头wordpress 5.1
  • wordpress自定义站点wordpress cms模板制作
  • 免费wap自助建站系统设计师需要了解的网站
  • 拟定网站优化方案泰州网站设计培训
  • 做国际网站有用吗天河网站建设价格
  • 上海网站设计专注乐云seo项目网站建设方案模板
  • 上海做网站 公司青岛提供网站建设哪家便宜
  • 北京正规网站建设公司哪家好体育网站建设
  • 网站设计技能西安网络公司大全
  • saas源码优化的网站做域名跳转
  • 江门恒阳网站建设phpcms企业网站源码
  • 成都网站建设g冠辰手机访问网站 自动缩放
  • 福建嘉瑞建设工程有限公司网站seo服务加盟
  • 全国哪个县网站做的最好wordpress使用七牛防止降权