关于 Neting 刚开始的时候是打算使用微软官方的 Yarp 库,实现一个 API 网关,后面发现坑比较多,弄起来比较麻烦,就放弃了。目前写完了查看 Kubernetes Service 信息、创建 Route 和 Cluster 和绑定 Kubernetes Service。简单来说,就是完成了基础部分,配置路由和后端服务绑定,如果想实现动态路由和直接转发等功能,只需要按照官方的文档,增加中间件即可。 原本打算使用 .NET 6 的 AOT(一共40MB) ,但是打包运行会容易出现一些依赖问题和环境问题,因此放…

2022年1月17日 0条评论 2429点热度 0人点赞 痴者工良 阅读全文

Hammerdb 是一个数据库压力测试工具,下载地址: https://www.hammerdb.com/download.html HammerDB 是领先的基准测试和负载测试软件,适用于世界上最流行的数据库,支持 Oracle 数据库、SQL Server、IBM Db2、MySQL、MariaDB 和 PostgreSQL。 TPROC-C 基准测试; TPROC-H 全套测试; 首先创建需要的数据库测试,然后 点击 Schema Build - Options ,配置数据库连接。这里笔者创建的是 TPROC…

2022年1月17日 1条评论 5247点热度 1人点赞 痴者工良 阅读全文

安装了 Mysql/MariaDB ,但是 root 死活进不去,只能用 mysql 这个账号进去。 [root@192-168-0-241 ~]# mysql -u mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 10.3.32-MariaDB-log MariaDB Server Copyright (c) 2000, 2018, Or…

2022年1月13日 1条评论 4860点热度 2人点赞 痴者工良 阅读全文

scanme.nmap.org 是要扫描的域名或 IP 地址。 package main import ( "fmt" "net" "sort" ) func main() { ports := make(chan int, 100) results := make(chan int) var openports []int // 开启 100 个工作者线程 for i := 0; i < cap(ports); i++ { go worker(ports, results) } // 向[......]继续…

2021年11月17日 0条评论 2184点热度 0人点赞 痴者工良 阅读全文

reflect.Type.Elem() 可以返回元素的类型,例如指针类型,返回不带指针的类型。 reflect.Value.Elem() 是获取指向值的引用。 type name struct { } func (n name) Print(str string) { } func main() { var n interface{} = &name{} t := reflect.TypeOf(n) var na interface{} // 实例化 if t.Kind() == reflect.Ptr {…

2021年11月16日 0条评论 2446点热度 0人点赞 痴者工良 阅读全文

||其代码如下: /// <summary> /// 值类型和字符串互转 /// </summary> public class JsonStringToNumberConverter : JsonConverterFactory { /// <summary> /// 获取默认实例 /// </summary> public static JsonStringToNumberConverter Default { get; } = new J[......]继续阅读

2021年11月3日 1条评论 2788点热度 0人点赞 痴者工良 阅读全文

以 Linux 为例,在 Go 中调用一个命令行程序,其代码示例如下: package main import ( "log" "os" "os/exec" ) func main() { cmd := exec.Command("top") cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr if err := cmd.Run(); err != nil { log.Fatal(err) } } 首先使用 cmd[......] 继…

2021年10月5日 0条评论 2913点热度 2人点赞 痴者工良 阅读全文

Manjaro 更新软件、安装软件时,提示: 正在下载所需的密钥...... :: 是否导入 PGP 公钥 A85E811EB4CA2E08 ,"Caleb Maclennan <alerque@archlinux.org>"? [Y/n] y :: 是否导入 PGP 公钥 E0959FEA8B550539 ,"George Rawlinson <grawlinson@archlinux.org>"? [Y/n] y y( 71/771) 正在检查软件包完整性[......]继续阅读

2021年10月5日 0条评论 8397点热度 7人点赞 痴者工良 阅读全文

下毒代码如下: void Main() { Value a = 0; if (a == 1 && a == 2 && a == 3) { Console.WriteLine("给代码下点毒"); return; } Console.WriteLine("代码无毒"); } public class Value { private int _value; public Value() { } public Value(int value) {[......]继续阅读

2021年9月25日 0条评论 2430点热度 0人点赞 痴者工良 阅读全文

代码所示,将 Table 导出为 .csv 格式的数据。 public static async Task SaveCSV(DataTable dt,string[] header, string fileName) { StringBuilder sb = new StringBuilder(); sb.Append($"{string.Join(",", header)}\r\n"); for (int i = 0; i < dt.Rows.Count; i++)[......]继续阅读

2021年8月23日 0条评论 2536点热度 0人点赞 痴者工良 阅读全文

继承 IActionResult: public class ResponseResult<TData> : IActionResult { /// <summary> /// 状态码 /// </summary> public int Code { get; set; } /// <summary> /// 响应信息 /// </summary> public string Msg { g[......]继续阅读

2021年8月21日 0条评论 4356点热度 0人点赞 痴者工良 阅读全文

有读者回复推荐全局异常拦截使用 app.UseExceptionHandler();。 https://learn.microsoft.com/en-us/aspnet/core/fundamentals/error-handling?view=aspnetcore-9.0 跟本身的主要区别是请求到达的中间件位置不一样,对于整个 Web 链路生命周期,建议使用 app.UseExceptionHandler();。 本身主要关于 MVC 请求中的异常进行除了。 全局异常拦截器: /// <summary>…

2021年8月12日 2条评论 3219点热度 0人点赞 痴者工良 阅读全文

直接使用 .NET 的 CLR 库生成,不依赖第三方框架。 已将代码修正为最新实现,去掉过时接口。 基于密码的密钥导出函数2(PBKDF2)让别人更难通过穷举法猜到你的帐户密码。 pbkdf2 加密是不可逆的,因此可以用来处理密码等,只能对比,不能还原。 比如说,每个用户设置一个加密密钥,每个用户使用自己的密钥加密密码,且密码不可逆。 即使拿到一个用户的密码,破解了,每个用户的密钥都是不一样的,没法大规模爆破。 /// <summary> /// Pbkdf2 /// </summary> …

2021年8月12日 0条评论 2946点热度 0人点赞 痴者工良 阅读全文

当直接使用 API 获取 Claim 时,是不会检查 Token 的密钥是否正确的。 var jwt = jwtSecurityTokenHandler.ReadJwtToken(token); 如果要同时检查 Token,则可以这样使用: // 检查密钥 ClaimsPrincipal claimsPrincipal = jwtSecurityTokenHandler.ValidateToken(token, new TokenValidationParameters[......]继续阅读

2021年8月12日 0条评论 2688点热度 0人点赞 痴者工良 阅读全文

常用的 Json 序列化配置如下: // json 序列化配置 private static readonly JsonSerializerOptions JsonSetting = new JsonSerializerOptions() { // 首字母小写 PropertyNamingPolicy = JsonNamingPolicy.CamelCase, // 格式化输出,即自动换行、加上空格 WriteIndented = true,[......]继续阅读

2021年8月12日 0条评论 4729点热度 3人点赞 痴者工良 阅读全文

中间件示例: using AuthCenter.Domain.Modules; using Microsoft.AspNetCore.Http; using System; using System.Collections.Generic; using System.Text; using System.Text.Json; using System.Threading.Tasks; namespace AuthCenter.Domain.Middlewares { /// <summary> /// …

2021年8月12日 0条评论 2558点热度 0人点赞 痴者工良 阅读全文

Docker 如果使用 Nexus 配置 Docker 私有仓库,但是 Docker 不配置好地址,那么拉取镜像时会提示: Error response from daemon: Get https://192.168.0.111:666/v2/: http: server gave HTTP response to HTTPS client 首先在 Nexus 上配置好 Docker 仓库。 例如下图,其端口是 8082。 因为使用的是 HTTP、HTTPS ,因此需要配置修改参数,打开 /etc/docker/…

2021年8月11日 0条评论 2473点热度 0人点赞 痴者工良 阅读全文

为了配置 Linux 免密登录,之前找到方法都是比较麻烦的,后面发现一种只需要两个步骤就能完成免密登录配置的方法。 假如,在 Linux A 免密登录 Linux B。 那么在 A 上生成 私钥公钥: ssh-keygen 生成后,将公钥推送到 B 中: ssh-copy-id <user>@<ip> # 或者 scp /root/.ssh/id_rsa.pub <user>@<ip>1:/root/.ssh/authorized_keys 接着首次输入密码. 然后会…

2021年8月4日 0条评论 3027点热度 1人点赞 痴者工良 阅读全文

在 ASP.NET Core 中生成验证码的方法以及代码: 引入 ZKWeb.System.Drawing ,其代码示例如下: /// <summary> /// 验证码服务 /// </summary> public class VerificationCode { // 验证码有效期(秒) private const int ValiditySecond = 60; // 宽、高,字体大小 private const int CodeWidth = 74;[......]继续阅读

2021年7月21日 0条评论 2571点热度 0人点赞 痴者工良 阅读全文

本文主要介绍 C# 命名空间 System.Buffers.Binary 中的一些二进制处理类和 Span 的简单使用方法,这些二进制处理类型是上层应用处理二进制数据的基础,掌握这些类型后,我们可以很容易地处理类型和二进制数据之间的转换以及提高程序性能。 C# 原语类型 按照内存分配来区分,C# 有值类型、引用类型; 按照基础类型类型来分,C# 有 内置类型、通用类型、自定义类型、匿名类型、元组类型、CTS类型(通用类型系统); C# 的基础类型包括: 整型: sbyte, byte, short, ushort,…

2021年7月20日 0条评论 2422点热度 0人点赞 痴者工良 阅读全文
191011121327