芦苞建网站公司scrm企业微信管理系统

news/2025/10/9 12:50:59/文章来源:
芦苞建网站公司,scrm企业微信管理系统,网站建设的需求方案,cms网站管理系统前言原计划打算在春节期间多分享几篇技术文章的#xff0c;但到最后一篇也没出#xff0c;偷懒了吗#xff1f;算是吧#xff0c;过程是这样的#xff1a;每次拿出电脑#xff0c;在孩姥姥家的院子总有阳光沐浴#xff0c;看不清屏幕#xff0c;回屋又有点冷(在强行找理… 前言原计划打算在春节期间多分享几篇技术文章的但到最后一篇也没出偷懒了吗算是吧过程是这样的每次拿出电脑在孩姥姥家的院子总有阳光沐浴看不清屏幕回屋又有点冷(在强行找理由)于是又带着娃遛弯去啦。哪有那么多理由就是想偷个懒不过后面几天把计算机组成原理简单过了过后面整理整理再单独给小伙伴分享吧。这次接着IdentityServer4说之前一直用内存数据进行测试演示在正式项目中肯定是要存数据库的(除非数据固定用内存方式实现)接下来就用Demo实操的过程说说IdentityServer4的持久化。正文IdentityServer4已经对EF Core有很好的支持与封装用很少的代码就能实现数据持久化重点还是需要对EF Core有所了解如果还有不了解的小伙伴请先花几分钟看看之前分享的关于EF Core的文章(跟我一起学.NetCore之EF Core 实战入门一看就会)。主要需要nuget包如下IdentityServer4这个包是IdentityServer4的核心包项目中只要使用IdentityServer4就必须引入此包IdentityServer4.EntityFramework这个包是IdentityServer4针对EF进行封装的包支持使用EF进行数据的持久化Microsoft.EntityFrameworkCore.SqlServer针对不同的数据库引入不同的EF包这里使用的是微软提供的本地数据库所以引入的SqlServerMicrosoft.EntityFrameworkCore.Tools如果需要在程序的包管理控制台进行迁移操作就需要在指定程序集中安装此包Microsoft.EntityFrameworkCore.Design如果需要在命令行中进行迁移操作就需要在指定程序集中安装此包注Demo演示采用的是包管理控制台的方式进行迁移操作命令行的方式思路是一样的只是使用的命令稍微有点不同Demo走起来项目准备这里就不从头到尾敲代码啦把上一节Authorization Code的代码拷贝过来重点还是关注持久化的过程(这个理由棒棒哒)。源码地址https://github.com/zyq025/IDS4Demo/tree/main/AuthorizationCode。开始撸码先把包都引入到程序中如下图然后在Startup.cs文件中将原来的内存模式改为从数据库中读取即可其实最关键的就是IdentityServer4封装好的两个上下文ConfigurationDbContext这个上下文主要是针对配置数据比如客户端(Client)、资源(Resources)等PersistedGrantDbContext这个上下文主要是针对用户授权操作时的数据和临时数据比如同意授权的数据、Token等在代码中只需要针对这这两个上下文指定数据库就行啦如果没有什么自定义需求不用其他配置如下迁移就完事啦代码撸完啦剩下的就是EF迁移的几步走就完事啦(这里演示用的包管理控制台)注如果程序中有多个上下文如果不指定上下文迁移会报错因为程序不知要迁移哪个。新增迁移指定ConfigurationDbContext指定PersistedGrantDbContext参数简要说明-Context 指定上下文进行迁移-OutputDir迁移生成的文件存放路径最后迁移的文件结果如下根据迁移文件同步到数据库中先同步ConfigurationDbContext这时候对应的数据库就生成了而且对应配置相关的表已经在数据库创建再同步PersistedGrantDbContext这个表少就两张其实这样就已经可以啦只要在数据库对应的表中添加对应的数据就能进行操作啦 那新手小伙伴肯定得苦恼啦这么多表咋知道哪个表存啥数据啊不急咱们把原来内存中的数据存进去然后再看看每个表存了啥这不就更加明了啦比一个一个表说的还直接这种方式还能促使小伙伴动手不然都不知道里面存了啥(哈哈哈高招)。那就多出来第四步如下……4. 加个种子数据美美哒这里说的种子数据就是指原来在内存中数据把它们读出来存到数据库中就行很简单通过上文直接存即可代码如下方法写好啦直接在Configure中调用即可如下这样就完工啦把授权服务器、资源服务器、客户端都启动走一遍流程看看是不是成功啦不出意外一切顺利这时再返过来看看每个表中都存啥数据就真的很清晰啦。这里就不一一截图说相信小伙伴都能搞得明白。到这肯定有小伙伴要说话啦用户那还是用的内存之所以没放到上面一起说那是因为用户这块的控制权完全在我们自己手里可以自己设计(就是用户、菜单、角色那一套)也可以集成微软封装好的Identity(把常用的用户那一套已经封装啦)。这里演示肯定挑着爽的玩就集成微软封装好的Identity来继续撸码引入相关nuget包引入的包简单说明IdentityServer4.AspNetIdentityIdentityServer4对微软封装的Indentity的支持Microsoft.AspNetCore.Identity.EntityFrameworkCore对Identity提供EF支持撸码就对了因为IdentityDbContext是抽象类不能直接使用这里需要针对IdentityDbContext定义一个子类ApplicationDbContext如下然后在Startup.cs中注册相关服务即可迁移及同步这里没有指定输出路径小伙伴根据自己的需要进行指定。数据库中生成相关的表如下更改登录和登出逻辑登出的时调用 _signInManager.SignOutAsync();即可加点种子数据即程序启动时加入用户数据方法写好同样在Configure中调用即可种子数据准备好之后就可以用Zoe用户进行登录啦密码就是Zoe123456这里就不专门针对微软封装的Identity说的那么细啦小伙伴可以参考文档https://docs.microsoft.com/zh-cn/aspnet/identity/overview/getting-started/introduction-to-aspnet-identity。总结IdentityServer4的入门暂时先到这篇吧后续会在实战项目中进行使用分享。下一节先来说说服务发现。一个被程序搞丑的帅小伙关注Code综艺圈跟我一起学~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025.10.9午后有感

对自己、对世界上永远有的年轻人,想这样说:“世界没有你曾梦想中的那般好,但也远远不及你厌恶的那般差,在纷杂的琐碎间,寻找到足以令你坚定下去的对世界有益的事业,足以抵挡一切荒芜和恐怖”。

Firefox火狐浏览器插件下载、安装路径

前言全局说明一、说明 1.1 环境: Windows 7 旗舰版 Firefox 115.12.0esr (64 位)二、下载插件临时路径 系统缓存目录下.xpi文件就是 C:\Users\{你的用户名}\AppData\Local\Temp或 C:\Users\%username%\AppData\Local\T…

业余做衣服的网站网站是否上线

技术由来: 互联网早期,页面请求和并发量不高,且移动端未盛行时对接口要求不高,使用动态页面(jsp)就能满足绝大多数的使用需求。但是随着互联网和移动设备的发展,人们对Web应用的使用需求也增加,传统的动态…

实用指南:PyTest框架学习

实用指南:PyTest框架学习pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…

wap手机网站描述正确的是建e网怎么做效果图

这里写目录标题 字符指针字符指针与常量字符串的区别: 指针数组数组指针两者的区别:&数组名 ,sizeof(arr)数组指针的使用数组参数,指针参数一维数组传参整型数组:整型指针数组: 一级指针传参二级指针传…

详细介绍:计算机毕业设计springboot的老年公寓管理系统 SpringBoot智慧养老院服务平台设计与实现 基于SpringBoot的社区长者照护信息管理系统

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

PWN手成长之路-12-pwn1_sctf_2016

远程连接环境查看交互。file 查看文件。32 位可执行文件。checksec 查看文件。开启了 NX 保护。IDA 打开文件。main 函数直接是调用 vuln 函数。查看 vuln 函数。发现使用 C++ 写的。发现了存在 fgets() 函数,会造成栈…

WPF应用最小化到系统托盘

前言 在现代桌面应用开发中,系统托盘(System Tray)功能已经成为用户体验的重要组成部分。特别是对于需要长时间运行的应用程序,如即时通讯工具、音乐播放器、系统监控工具等,最小化到系统托盘不仅可以节省任务栏空…

深圳网站优化计划商务网站的建设有哪几个步骤

满意答案 你机器里装了北信源的DeviceRegist软件,这个软件不是杀毒软件或者防毒软件,而是一个远程桌面管理软件。这类软件其实和木马程序原理上一样,只不过是正规软件公司开发的,但是流氓程度不容小觑,即使在安全模式下也会加载vrvrf_c.exe,vrvedp_m.exe,vrvsafec.exe,wat…

大庆 网站建设长沙精品网站制作

主题介绍: 今日在网上寻找wordpress主题的时候逛到了大叔的网站,赶脚这个主题蛮不错的,于是百度一下,果然,这个主题很受欢迎。作为主题下载站追梦者也不甘落后,马上就发布出来了,希望对你们有用…

网站建设公司联系方式北京网站开发周期

很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到。 0.Java 中多线程同步是什…

Hyper-v 安装 Android9

选第一代 硬盘后续添加vhd格式的

网站每年多少钱wordpress怎样建立多站点

一 压力测试的目的 评估系统的能力识别系统的弱点:瓶颈/弱点检查系统的隐藏的问题检验系统的稳定性和可靠性 二 性能测试指标以及测算 【虚拟用户数】:线程用户【并发数】:指在某一时间,一定数量的虚拟用户同时对系统的某个功…

河南app手机网站制作合肥有多少建网站公司

欧冠16强抽签揭晓,结果:多特VS巴黎,皇马VS曼城,亚特兰大VS瓦伦西亚,马竞VS利物浦,切尔西VS拜仁,里昂VS尤文图斯,热刺VS莱比锡,那不勒斯VS巴萨。怎么评价这样的抽签呢&…

计算机毕业设计springboot制氢领域文献管理强大的系统 基于SpringBoot的氢能研究文献管理平台 面向制氢技能的文献资料管理系统设计与实现

计算机毕业设计springboot制氢领域文献管理强大的系统 基于SpringBoot的氢能研究文献管理平台 面向制氢技能的文献资料管理系统设计与实现2025-10-09 12:29 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space:…

网站分析报告范文2000产品开发流程管理

var A {a:1,b:2,c:3,d:"hello world"};for(var k in A) {console.log(k,A[k]);var h new EJS({element:ejs_render_id}).render(render);}return;转载于:https://www.cnblogs.com/pansidong/p/8708245.html

数论上

目录数论上前言模运算基本概念基础性质基础运算除法逆元除法的一般情况次幂(欧拉定理)费马小定理&欧拉定理原根与阶对数(BSGS)开根(二次剩余) 数论上 前言 叠甲:本文的许多定义并不是最官方严谨的,但是其实…

数论中

目录数论中前言一些定理欧几里得算法全家桶中国剩余定理及其拓展(CRT)威尔逊定理及逆定理拉格朗日定理(没有用,不需要讲) 数论中 前言 叠甲:本文的许多定义并不是最官方严谨的,但是其实是本质相同的,不过更偏实…

Vue 3 + TypeScript 中 QCarousel 模板引用类型错误解决方案

Vue 3 + TypeScript 中 QCarousel 模板引用类型错误解决方案Vue 3 + TypeScript 中 QCarousel 模板引用类型错误解决方案 一、问题描述 在 Vue 3 + TypeScript 项目中使用 Quasar 的QCarousel组件时,通过$refs.carous…