摘要: 步骤如下: a. 安装make、C++、pkg-config: sudo apt install make g++ pkg-config b. 安装openblas-lapack: wget https://github.com/xianyi/OpenBLAS/releases/download/v 阅读全文
posted @ 2024-05-07 08:22 dax.net 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 在上文《Keycloak中授权的实现》中,以一个实际案例介绍了Keycloak中用户授权的设置方法。现在回顾一下这个案例: 服务供应商(Service Provider)发布/WeatherForecast API供外部访问 在企业应用(Client)里有三个用户:super,daxnet,nobo 阅读全文
posted @ 2024-04-22 22:33 dax.net 阅读(651) 评论(4) 推荐(3) 编辑
摘要: 在Keycloak中实现授权,首先需要了解与授权相关的一些概念。授权,简单地说就是某个(些)用户或者某个(些)用户组(Policy),是否具有对某个资源(Resource)具有某种操作(Scope)的权限(Permission)。所以,授权是一种权限管理,它建立在认证的基础上:用户首先要完成认证(A 阅读全文
posted @ 2024-04-13 16:25 dax.net 阅读(311) 评论(0) 推荐(1) 编辑
摘要: Keycloak是一个功能强大的开源身份和访问管理系统,提供了一整套解决方案,包括用户认证、单点登录(SSO)、身份联合、用户注册、用户管理、角色映射、多因素认证和访问控制等。它广泛应用于企业和云服务,可以简化和统一不同应用程序和服务的安全管理,支持自托管或云部署,适用于需要安全、灵活且易于扩展的用 阅读全文
posted @ 2024-04-06 21:59 dax.net 阅读(571) 评论(2) 推荐(5) 编辑
摘要: Windows 7是一个老的操作系统,它与它的SP1版本早已在2015年1月13日结束主流版本的支持,虽然微软官方将最终支持日期延期到2020年1月14日,但这也已经过去了几年的时间了,参考:https://learn.microsoft.com/en-us/lifecycle/products/w 阅读全文
posted @ 2024-01-21 13:27 dax.net 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 有时候需要在Windows Forms中加入一些实现了IDisposable接口的类型,然而会有这样的疑惑:应该在何时调用这些类型的Dispose方法? 第一种方式是在窗体的OnClosed事件处理函数重载中调用,比如: class MyComponent : IDisposable { } cla 阅读全文
posted @ 2023-12-29 10:34 dax.net 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 背景 游戏开发中,一个非常常见的行为就是,游戏中的角色需要对周围发生的事物做出反应:飞机在被子弹打中后要出现爆炸效果并从屏幕上消失;台球在撞击到桌面边缘时应能够根据速度和角度反弹等等。在这些场景中,至少会有两个参与者(飞机与子弹,台球与桌面)进行交互,以共同完成一个游戏行为。两个参与者的情况是最为简 阅读全文
posted @ 2023-05-20 21:39 dax.net 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 这又是一个来自于实际项目的问题:如何在RESTful API上实现指定字段的服务端排序。问题背景是这样的,有一个前端的页面,它会显示下面这张表格: 这张表格的表头是可以被点击的,当点击某个列的列头(Column Header)时,数据就会根据这一列进行升序或者降序排列。当数据量小的时候,一张表格就可 阅读全文
posted @ 2023-04-07 21:47 dax.net 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 2022年11月,随着.NET 7的发布,微软发布了新版本的C#语言:C# 11。与之前C#的大版本更新相比,例如,C# 2.0引入了泛型,C# 3.0引入了LINQ和Lambda表达式,C# 4.0引入了协变与逆变、C# 5.0引入了async/await等等,C# 11则更多地是进一步完善C#语 阅读全文
posted @ 2023-04-05 19:03 dax.net 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 在微服务架构的部署拓扑中,比较常见的做法是将身份认证中心(Identity Authority)与其它的微服务一起,置于API Gateway之后,由API Gateway提供统一的端点供客户端程序访问。本文介绍如何将IdentityServer4配置在nginx之后,通过nginx为Blazor 阅读全文
posted @ 2023-03-18 22:30 dax.net 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 从C# 9开始,引入了init关键字,其目的是确保类中的属性(property)仅在对象被构造的时候才允许被赋值,听起来好像与C# 6中的自动属性构造函数初始化(auto-property constructor initialization)的方式有些类似,但由init定义的类属性,允许在调用方初 阅读全文
posted @ 2023-01-02 22:12 dax.net 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 正在运行《太空拦截》游戏的Telmac 1800微型计算机 CHIP-8是上世纪70年代(1970)中期,由RCA Labs的工程师Joe Weisbecker开发的一套解释型编程语言,它被用于COSMAC VIP和Telmac 1800 8位微型计算机上。CHIP-8程序需要在CHIP-8虚拟机上 阅读全文
posted @ 2022-10-04 19:58 dax.net 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 本文标题有点难懂,不过我也实在是想不出什么更好的标题了,就请大家研读文章内容吧。最近在审核代码中发现一个有趣的现象,就是在C#中,如果我启用了Nullable Reference Type的功能,并且定义了下面这个扩展方法: static class Extensions { public stat 阅读全文
posted @ 2022-09-08 22:17 dax.net 阅读(2) 评论(0) 推荐(0) 编辑
摘要: ASP.NET Core Blazor 应用程序分两种:一种是需要依赖于后台宿主进程的Server App,另一种是直接在浏览器中运行的WebAssembly。WebAssembly是纯前端的,其中内嵌了一个微小版的.NET运行时,一次加载之后,整个WebAssembly就可以在浏览器进程中,通过内 阅读全文
posted @ 2022-08-13 09:50 dax.net 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 是否需要将IdentityServer置于Ocelot API网关之后,由Ocelot API网关对其进行保护,需要看具体的架构需求。在微软官方的eShopOnContainers架构案例中,由于根据不同的业务需求,设置了多个Ocelot API网关,因此,这个案例并没有将IdentityServe 阅读全文
posted @ 2022-07-16 09:40 dax.net 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 在《再谈使用IdentityServer实现ASP.NET Core Web API的认证与授权》一文中,我又重新总结了IdentityServer中ApiScope和ApiResource的用法,通过对两者的设置,实现了基于Claim的API授权。今天,我们更进一步,引入Ocelot API网关,... 阅读全文
posted @ 2022-07-14 16:26 dax.net 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 在《使用Ocelot、IdentityServer4、Spring Cloud Eureka搭建微服务网关:Step by Step(一)》一文中,我曾经介绍了如何使用IdentityServer4对ASP.NET Core Web API的访问进行身份认证与授权。本文将更加深入讨论有关ApiRes... 阅读全文
posted @ 2022-07-12 21:41 dax.net 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 小的时候就看到有同学使用C语言在DOS下做过一款俄罗斯方块的游戏,当时是启用了DOS的图形化模式,感觉也挺有意思。最近上海疫情封控在家,周末也稍微有点空余时间,于是使用Visual Studio 2019,C# 9.0配合MonoGame 3.8,自己也写了一个俄罗斯方块的游戏,效果如下: 当然,光 阅读全文
posted @ 2022-05-29 16:09 dax.net 阅读(4310) 评论(8) 推荐(31) 编辑
摘要: 这两天在整理两年前写的一个打字练习的小游戏的代码,发现其中有个写法挺有意思:private IEnumerable LetterSprites => from p in this where p is LetterSprite select p as LetterSprite;这段代码的意思是,... 阅读全文
posted @ 2022-05-07 21:10 dax.net 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 从容器启动复制下面的YAML然后保存成docker-compose.yaml文件:---version: '3'services: zookeeper: image: confluentinc/cp-zookeeper:7.0.1 container_name: zookeeper ... 阅读全文
posted @ 2022-03-19 20:56 dax.net 阅读(2) 评论(0) 推荐(0) 编辑