摘要: 记录一下笔者关于状态的一些相关认知。 1 状态 在计算机领域,状态1指的是一个系统被设计用来记住之前的事件或用户交互,那么就称之为有状态的系统,系统记录的信息则就是状态。注意这里的重点不是说记录信息,而是记住之前的。 举个例子:你去楼下的便利店买东西,95元,你给了店家100块,但是店家暂时没零钱, 阅读全文
posted @ 2020-09-03 12:01 Timetombs 阅读(1098) 评论(0) 推荐(3) 编辑
摘要: 记录一下笔者关于软件设计的一些相关认知。在开始之前,先引入两个概念目标和途径(这里可能会有些咬文嚼字,不过主要是为了区分主观和客观的一些细微差异)。 1 目标和途径 我们在做某一件事情的时候,总是会带有一定的目的性的:比如说一日三餐,是为了给身体补充所需的能量。那么这三餐具体如何落实呢,则会有多种多 阅读全文
posted @ 2020-09-02 07:08 Timetombs 阅读(10445) 评论(35) 推荐(76) 编辑
摘要: "X.509][X.509]是[ 公钥证书" 的格式标准, 广泛用于TLS/SSL安全通信或者其他需要认证的环境中。X.509证书可以由 " CA" 颁发,也可以自签名产生。 1 Overview { 1 overview} X.509证书中主要含有 、`身份信息 签名信息 有效性信息`等信息。这些 阅读全文
posted @ 2020-02-17 10:19 Timetombs 阅读(11639) 评论(0) 推荐(6) 编辑
摘要: 在上一篇 "[Cake] 2. dotnet 全局工具 cake" 中介绍了通过.Net Core 2.1 的全局工具 命令来简化cake的安装和使用。 因为是全局安装,则无法适应每个项目对特定版本的要求 。随着.Net Core 3.0中增加的对本地工具(项目级别)的支持,使得这一问题得以解决。 阅读全文
posted @ 2019-12-17 14:56 Timetombs 阅读(1442) 评论(0) 推荐(3) 编辑
摘要: 1969年11月美国国防部建立了一个名为 ARPANET (Internet的雏形)的 分组交换 网络,当前时间是2019年,50年过去了,如今的网络已经融入了社会的方方面面,其重要性不言而喻。本系列博客专注于 计算机网络 的核心概念和体系结构,并不涉及网络编程的概念。 1 标准化 { 1.stan 阅读全文
posted @ 2019-09-23 10:09 Timetombs 阅读(1460) 评论(1) 推荐(3) 编辑
摘要: 在上篇博客[Cake] 1. CI中的Cake中介绍了如何在CI中利用Cake来保持与CI/CD环境的解耦。 1. 简化cake的安装 当时dotnet 2.1还未正式发布,dotnet 还没有工具的支持,使得安装cake非常麻烦。不过随着 dotnet tool 的加入,这一问题得到了很好的解决。 阅读全文
posted @ 2019-05-12 09:29 Timetombs 阅读(2503) 评论(1) 推荐(2) 编辑
摘要: Web之父 Tim Berners Lee :https://en.wikipedia.org/wiki/Tim_Berners-Lee 世界上诞生的第一个网站:http://info.cern.ch/ 世界上诞生的第一个网站-模拟器:http://line-mode.cern.ch/www/hyp 阅读全文
posted @ 2019-04-30 18:24 Timetombs 阅读(722) 评论(0) 推荐(2) 编辑
摘要: 在上上一篇基于OIDC的SSO的登录页面的截图中有出现QQ登录的地方。这个其实是通过扩展OIDC的OpenID Provider来实现的,OpenID Provider简称OP,OP是OIDC的一个很重要的角色,OIDC用它来实现兼容众多的用户认证方式的,比如基于OAuth2,SAML和WS-Fed 阅读全文
posted @ 2018-12-01 10:41 Timetombs 阅读(4736) 评论(1) 推荐(5) 编辑
摘要: 在上一篇C#Make自动化构建-简介中,简单的介绍了下Cake的脚本如何编写以及通过Powershell或者Bash在本地运行Cake脚本。本篇在此基础上,介绍下如何在CI环境中使用Cake。 1. Cake简介续 1.1 为Task添加注释信息 Cake的每一个Task都可以添加一项描述,用来解释 阅读全文
posted @ 2018-03-04 12:16 Timetombs 阅读(2760) 评论(1) 推荐(3) 编辑
摘要: 在前面5篇博客中介绍了OAuth2和OIDC(OpenId Connect),其作用是授权和认证。那么当我们得到OAuth2的Access Token或者OIDC的Id Token之后,我们的资源服务如何来验证这些token是否有权限来执行对资源的某一项操作呢?比如我有一个API,/books,它具 阅读全文
posted @ 2018-01-13 15:23 Timetombs 阅读(6327) 评论(20) 推荐(21) 编辑
摘要: 在基于传统的.NET Framework的Asp.Net Mvc的时候,本地开发环境中可以在IIS中建立一个站点,可以直接把站点的目录指向asp.net mvc的项目的根目录。然后build一下就可以在浏览器里面刷新到最新的修改了,也可以附加到w3wp的进程进行调试。但是在开发基于.Net Core 阅读全文
posted @ 2017-11-29 23:56 Timetombs 阅读(2246) 评论(13) 推荐(7) 编辑
摘要: 在上一篇基于OIDC的SSO的中涉及到了4个Web站点: 其中hybrid和implicit这两个站点都是具有在服务端执行代码的能力的(1,登录需要在服务端做跳转;2,登录状态写入cookie;3,通过服务端的接口接收被动的退出通知)。而js这个客户端则是一个纯粹的静态网站,那么它是如何处理登录和退 阅读全文
posted @ 2017-11-27 12:19 Timetombs 阅读(7008) 评论(8) 推荐(8) 编辑
摘要: 在[认证授权]系列博客中,分别对OAuth2和OIDC在理论概念方面进行了解释说明,其间虽然我有写过一个完整的示例(https://github.com/linianhui/oidc.example),但是却没有在实践方面做出过解释。在这里新开一个系列博客,来解释其各种不同的应用场景。因为OIDC是 阅读全文
posted @ 2017-11-26 01:09 Timetombs 阅读(21271) 评论(73) 推荐(26) 编辑
摘要: 在上一篇[认证授权] 4.OIDC(OpenId Connect)身份认证(核心部分)中解释了OIDC的核心部分的功能,即OIDC如何提供id token来用于认证。由于OIDC是一个协议族,如果只是简单的只关注其核心部分其实是不足以搭建一个完整的OIDC服务的。本篇则解释下OIDC中比较常用的几个 阅读全文
posted @ 2017-11-16 13:39 Timetombs 阅读(22199) 评论(21) 推荐(14) 编辑
摘要: 先看一下Redis是一个什么东西。官方简介解释到:Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用。同时支持strings,lists,hashes,sets,sorted sets,bitmaps,hyperloglo 阅读全文
posted @ 2017-11-06 15:31 Timetombs 阅读(13849) 评论(17) 推荐(32) 编辑
摘要: 衔接上文[解读REST] 5.Web的需求 & 推导REST,上文根据Web的需求推导出了REST架构风格,以及REST的详细描述和解释。自从1994年以来,REST架构风格被用于指导Web架构的设计和开发工作,最重要的两点体现是在设计HTTP和URI两个互联网规范协议中,以及实现这些规范的libw 阅读全文
posted @ 2017-10-21 15:21 Timetombs 阅读(1786) 评论(0) 推荐(5) 编辑
摘要: 衔接上文[解读REST] 4.基于网络应用的架构风格,上文总结了一些适用于基于网络应用的架构风格,以及其评估结果。在前文的基础上,本文介绍一下Web架构的需求,以及在对Web的关键协议进行设计和改进的过程中遇到的问题;以及在对基于网络应用的架构风格进行评估的过程中的领悟;结合Web的需求进而推导出R 阅读全文
posted @ 2017-10-15 15:44 Timetombs 阅读(2622) 评论(2) 推荐(7) 编辑
摘要: 衔接上文[解读REST] 3.基于网络应用的架构,上文介绍了一组自洽的术语来描述和解释软件架构;如何利用架构属性评估一个架构风格;以及对于基于网络的应用架构来说,那些架构属性是值得我们重点关注评估的。本篇在以上的基础上,列举一下一些常见的(REST除外)的适用于基于网络应用的架构风格,并使用对比架构 阅读全文
posted @ 2017-09-24 13:33 Timetombs 阅读(2041) 评论(4) 推荐(0) 编辑
摘要: 链接上文[解读REST] 2.REST用来干什么的?,上文中解释到什么是架构风格和应该以怎样的视角来理解REST(Web的架构风格)。本篇来介绍一组自洽的术语,用它来描述和解释软件架构;以及列举下对于基于网络的应用来说,哪些点是需要我们重点关注的。 1 软件架构 软件架构方面关注的是如何以最佳的方式 阅读全文
posted @ 2017-09-17 16:58 Timetombs 阅读(1753) 评论(3) 推荐(2) 编辑
摘要: 衔接上文[解读REST] 1.REST的起源,介绍了REST的诞生背景。每当笔者遇到一个新事物的想去了解的时候,总是会问上自己第一个问题,这个新事物是干什么用的?在解释我所理解的REST这个过程中也不例外,这篇博客我们先关注一下REST是干什么用的,然后后续再解释REST是什么。好了,不说废话了,在 阅读全文
posted @ 2017-09-15 23:24 Timetombs 阅读(1839) 评论(3) 推荐(2) 编辑
摘要: 0. 世界上第一个网站 1990年12月20日,这一天对于现在的互联网来说意义非凡。欧洲核子研究组织(CREN)的科学家Tim Berners-Lee在一台NeXT电脑上启动了世界上的第一个网站(当然当时仅能Tim Berners-Lee自己访问),这台电脑至今仍保留在CREN,但当年那个网站已经不 阅读全文
posted @ 2017-09-06 10:06 Timetombs 阅读(2348) 评论(0) 推荐(5) 编辑
摘要: 在信息安全领域,一般把Cryptography称为密码,而把Password称为口令。日常用户的认知中,以及我们开发人员沟通过程中,绝大多数被称作密码的东西其实都是Password(口令),而不是真正意义上的密码。本文保持这种语义,采用密码来代指Password,而当密码和口令同时出现时,用英文表示 阅读全文
posted @ 2017-07-23 14:24 Timetombs 阅读(5871) 评论(3) 推荐(5) 编辑
摘要: 0. 简单回顾 在前面两篇博客中介绍了密码相关的一些基本工具,包括(对称密码,公钥密码,密码散列函数,混合密码系统,消息认证码码,数字签名,伪随机数,数字证书)这几个。其中它们之间也是互相依赖的,我们来简单的梳理一下它们的依赖关系。 这篇要介绍的HTTPS,则把以上这些全都派上场了。 1. HTTP 阅读全文
posted @ 2017-07-04 22:25 Timetombs 阅读(5455) 评论(13) 推荐(15) 编辑
摘要: 在上一篇1.密码工具箱中介绍了一些密码技术相关的一些基本工具,同时遗留了一个鸡生蛋蛋生鸡的问题和公钥的认证问题( ̄▽ ̄)",这里再补充几个常用的工具先。 1. 伪随机数生成器(Pseudo-Random Number Generator) 随机数大家不陌生,但是随机数怎么就和信息安全扯上关系了呢?其 阅读全文
posted @ 2017-07-02 15:08 Timetombs 阅读(2947) 评论(1) 推荐(6) 编辑
摘要: 0. 何谓安全? 对于信息安全性的重要性,我想大家都不会否认。那么具体来说应该具有哪些特性才能称之为安全呢?举个简单的例子:我给你发送一条消息“借给我100元”,当你收到这条消息并且处理后你的账户里面会少出来100块,我的账户会多出来100块。在这个过程中,你是消息接收方,我是消息发送方。 总结来说 阅读全文
posted @ 2017-06-26 22:55 Timetombs 阅读(3489) 评论(4) 推荐(10) 编辑