开始之前 在写数据操作时,经常会与这两个接口打交道,它们有着几乎相同的方法,使用起来基本无二,甚至通过 As 方法可以相互转换。那么它们之间到底有什么区别,今天就聊聊这两个接口。 为了更好的理解,我们尝试使用如下语句进行理解: IQueryable<Project> projects1 = Db.Where(x => x.Id == projectId); IEnumerable<Project> projects2 = Db.Where(x => x.Id == project…
开始之前 在写数据操作时,经常会与这两个接口打交道,它们有着几乎相同的方法,使用起来基本无二,甚至通过 As 方法可以相互转换。那么它们之间到底有什么区别,今天就聊聊这两个接口。 为了更好的理解,我们尝试使用如下语句进行理解: IQueryable<Project> projects1 = Db.Where(x => x.Id == projectId); IEnumerable<Project> projects2 = Db.Where(x => x.Id == project…
前面已经写过完整的流程。今天分享一下客户端的配置。 开始之前 更多内容,可以查看我的文档:.NET 学习之路-认证中心的配置 正文开始 在 IdentityServer 中,需要我们进行配置的内容,大体分成:IdentityResource、ApiScope、ApiResource 和 Client,它们都是在 IdentityServer4.Models 中定义的。 我们在创建一个 Ids 服务之后,也要首先进行配置初始数据(之前写过的 Config.cs),也就是配置这些内容。 今天要详细梳理一下这些配置,因为…
开始之前 更多内容,可以看我的文档:.NET 学习之路-数据的持久化 正文开始 前面只是一个最简单的基础使用方案,虽然已经实现了认证与授权,但是明显并不能满足生产需求,下面就按不同需求进行配置。 上面的例子中,所有数据都在内存中,并不能持久化。如果要数据持久化,上数据库是必然的。 创建使用数据库的项目 通过命令可以快速创建一个带有模板的项目: dotnet new is4ef 下载 示例代码 可以获取完整的配置内容。 也可以创建空项目后按照下面内容自行配置。 配置数据库服务 使用上面命令创建的项目会包含比较完整的内…
开始之前 更多学习内容,可以看我的 .NET 学习之路系列-IdentityServer4 的使用,持续更新中。 正文开始 IdentityServer4 是基于 OpenId Connect(OIDC)、OAuth 2.0 统一的身份认证和授权系统。它拥有很多功能: 保护你的资源 使用本地帐户或通过外部身份提供程序对用户进行身份验证 提供会话管理和单点登录 管理和验证客户机 向客户发出标识和访问令牌 验证令牌 OpenId Connect(OIDC) OpenId 是一种认证机制,用于对用于的身份进行认证,它允许…
开始之前 上篇文章已经学习了如何认证,本篇将深入学习如何授权,如果需要继续理解认证的,包括基础认证,JWT 认证,以及如何在 .Net 项目中使用认证的,都可以看 上篇文章。 更多学习内容,可以看我的 .NET 学习之路系列-认证与授权。 授权 授权通常是针对用户可执行的操作。在 .NET 的解决方案中,授权的使用是非常简单的。它通过 AuthorizeAttribute 和其各种参数来控制。 所有的授权都是在认证之后的,如果开启了授权,而没有提供认证方案,则会报错。 下面的代码,都默认已经配置好了 JWT 认证方…
开始之前 更多学习内容,可以看我的 .NET 学习之路系列-认证与授权。 先贴上官方地址: IdentityServer 官方文档(英文) 英文麻烦的,可以看中文,但并不是官方的,同时内容也不是很全: 中文文档 学习之前,需要了解: OAuth2 和 OpenID Connect 两种协议机制。 OAuth 2.0 OAuth2是一种协议,允许应用程序从安全令牌服务请求访问令牌并使用它们与API进行通信。由于可以集中身份验证和授权,因此这种委派降低了客户端应用程序和API的复杂性。 OpenID Connect O…
感觉放了好长时间的假期。贴个 websocket 的简单示例。 整体文件结构 - 项目(WebSockets.Test) |-- Extensions | |-- SocketsExtension.cs |-- Handlers | |-- WebSocketMessageHandler.cs |-- SocketsManager | |-- SocketsHandler.cs | |-- SocketsManager.cs | |-- SocketsMiddleware.cs |-- Program.cs |--…
在请求静态文件时,有时路径可能是中文的。.NET Core在接收后会转成奇奇怪怪的字符,导致无法加载文件。 使用 HttpUtility 中的方法可以有效对 url 进行编解码。 下面为示例 using System.Web; public void DoSomething() { // 编码 string encode = HttpUtility.UrlEncode("小鹰"); // %E5%B0%8F%E9%B9%B0 // 解码 string decode = HttpUtility.U…
部署这事儿,要说简单,其实很简单,尤其巨硬官方文档写的那叫一个清晰。 发布 写好的.net core项目,直接在vs中发布即可,需要注意选择linux: 这里不是重点,相信到了部署阶段,开发和发布并不是本文所要关注的。 部署 本文用的CentOS 7 + Apache环境,如果有不一样的,大同小异,自行参阅文档。 先挂上巨硬的官方文档,这份部署文档相当详细,我也搜了一下其他文章,基本上都是按照这份文档部署的,所以没啥可说的。 巨硬的官方文档:https://docs.microsoft.com/zh-cn/aspn…
LINQ中经常需要进行数据判断进行筛选,如果遇到需要对日期进行格式化,需要注意不能在实体Entity中直接格式化日期,这样会报错,而是需要先将实体转换,再筛选。 例如: var day = "2020-04-20"; var r = _db.PlanDay.FirstOrDefault(x=>x.Validity && string.Equals(x.CreateTime.ToString("yyyy-MM-dd"), day)); 上面这样写,直接崩掉…
(っ•̀ω•́)っ✎⁾⁾ 开心每一天
COPYRIGHT © 2021 jeremyjone.com. ALL RIGHTS RESERVED.