C#与.NET技术
实践与教程

专注分享C#、ASP.NET Core、Azure、Blazor等微软技术栈的开发教程、架构设计和最佳实践

85
技术文章
42
教程系列
2.8k
月访问量
328
活跃读者
使用BaGet搭建自己的Nuget服务器
2020-05-17 0k

使用BaGet搭建自己的Nuget服务器

一、下载部署BaGet BaGet下载地址:https://github.com/loic-sharma/BaGet 可以自己编译,也可以下载作者提供的Release版本 二、下载安装Nuget Nuget.exe 下载地址:https://dist.nuget.org/win-x86-commandline/latest/nuget.exe Nuget安装后还需要配置环境变量 三、打包Nuget 在项目.csproj目录中打开cmd 或者powershell 并执行:nuget spec 用文本编辑器将上述命令执行完成的.nuspec 文件进行编辑 <?xml version="1.0"?> <package > <metadata> <id>Dongteng</id> <version>1.0.0</version> <title>ceshiceshi</title> <authors>Dongteng</authors> <owners>$author$</owners> <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl> <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl> <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>dongteng test</description> <releaseNotes>Summary of changes made in this release of the package.</releaseNotes> <copyright>Copyright 2019</copyright> <tags>Tag1 Tag2</tags> </metadata> </package> 根据实际的需求修改,一般修改id、version、authors、`description等 修改完以上信息后执行命令:nuget pack,进行打包.正常结果如下 也可以使用bat脚本执行 nuget-publish.cmd : @echo off echo *******************clean nupkg******************* del /S *.nupkg del /S *.nuspec echo *******************building******************* dotnet build echo *******************pack nupkg******************* dotnet pack echo *******************publish nupkg******************* dotnet nuget push **/*.

NuGet BaGet 包管理
阅读更多
什么是JWT? Json Web Token介绍
后端
2020-05-16 0k

什么是JWT? Json Web Token介绍

什么是jwt? JWT 英文名是 Json Web Token ,是一种用于通信双方之间传递安全信息的简洁的、URL安全的表述性声明规范,经常用在跨域身份验证。 JWT 以 JSON 对象的形式安全传递信息。因为存在数字签名,因此所传递的信息是安全的。 由三部分组成: Header(头部) Payload(数据) Signature(签名) JWT=头部编码+数据编码+加密(头部编码+数据编码+key) 编码采用base64编码,加密采用头部alg声明编码方式加密 一:头部(Header) JWT 头描述了 JWT 元数据,是一个 JSON 对象,它的格式如下: {"typ":"JWT","alg":"HS256"} 这里的 alg 属性表示签名所使用的算法,JWT 签名默认的算法为 HMAC SHA256 , alg 属性值 HS256 就是 HMAC SHA256 算法。typ 属性表示令牌类型,这里就是 JWT。 Base64编码后是下面这样: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 二:载荷(playload) 有效载荷是 JWT 的主体,同样也是个 JSON 对象。有效载荷包含三个部分: 1、标准注册声明: 标准注册声明不是强制使用是的,但是我建议使用。它一般包括以下内容: iss:jwt的签发者/发行人; sub:主题; aud:接收方; exp:jwt过期时间; nbf:jwt生效时间; iat:签发时间 jti:jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。 2、公共声明: 可以在公共声明添加任何信息,我们一般会在里面添加用户信息和业务信息,但是不建议添加敏感信息,因为公共声明部分可以在客户端解密。 3、私有声明: 私有声明是服务器和客户端共同定义的声明,同样这里不建议添加敏感信息。 下面这个代码段就是定义了一个有效载荷: {"sub":"1234567890","name":"John Doe","admin":true} Base64编码: eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9 三:签名(signature) 这个部分主要是确保数据不会被篡改,需要base64加密后的header和base64加密后的payload使用.

JWT 单点登录 http
阅读更多
使用docker安装部署gitlab实例
2020-04-08 0k

使用docker安装部署gitlab实例

安装Gitlab 1、拉取镜像 # gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本 docker pull gitlab/gitlab-ce 2、创建映射目录 mkdir -p /home/gitlab/config #创建config目录 mkdir -p /home/gitlab/logs #创建logs目录 mkdir -p /home/gitlab/data #创建data目录 3、运行镜像 强烈建议80端口不要映射其他端口, http clone 那里生成的地址不带映射端口 docker run -d -p 443:443 -p 80:80 -p 222:22 \ --name gitlab --restart always \ -v /home/gitlab/config:/etc/gitlab \ -v /home/gitlab/logs:/var/log/gitlab \ -v /home/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce 参数说明: 参数名称 简写 参数说明 detach d 后台运行 hostname 指定主机地址,如果有域名可以指向域名 publish p 将容器内部端口向外映射,左边代表宿主机的端口,右边代表容器端口 name 容器名称 restart always 总是重启 volume v 将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录 4、配置

gitlab docker 代码托管
阅读更多
使用Docker部署Apollo一个环境docker-quick-start版
后端
2020-04-05 0k

使用Docker部署Apollo一个环境docker-quick-start版

1、下载Apollo源码 git clone https://github.com/ctripcorp/apollo.git 2、进入docker-quick-start 目录 cd apollo/scripts/docker-quick-start 3、安装启动 docker-compose up 看到下面日志表示已经安装成功 apollo-quick-start | Waiting for config service startup..... apollo-quick-start | Config service started. You may visit http://localhost:8080 for service status now! apollo-quick-start | Waiting for admin service startup. apollo-quick-start | Admin service started apollo-quick-start | ==== starting portal ==== apollo-quick-start | Portal logging file is ./portal/apollo-portal.log apollo-quick-start | Started [237] apollo-quick-start | Waiting for portal startup..... apollo-quick-start | Portal started.

apollo docker 配置中心
阅读更多
Docker环境安装及基础命令使用
后端
2020-04-03 0k

Docker环境安装及基础命令使用

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 安装Docker 为yum配置加速 centos默认国外源,安装过程不是很理想 #下载阿里yum源2 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all #清理缓存 yum makecache #生成仓库缓存 安装: 1、安装必要依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 2、添加阿里镜像稳定版仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 3、安装docker-ce yum install -y docker-ce docker-ce-cli containerd.io 配置docker加速 创建或修改 daemon.json 文件 修改之后重启docker服务 vim /etc/docker/daemon.json { "registry-mirrors" : [ "http://registry.docker-cn.com", "http://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com" ], "insecure-registries" : [ "registry.docker-cn.com", "docker.mirrors.ustc.edu.cn" ], "debug" : true, "experimental" : true } 开机启动 systemctl enable docker #开机启动docker 重启 systemctl daemon-reload #加载 systemctl restart docker #重启docker 查看 systemctl status docker #查看docker状态 docker info #查看详细信息 docker version #查看版本 使用Docker 查看已有镜像列表

docker 环境安装 国内源
阅读更多
Typora+Picgo图片自动上传打造Markdown写作神器
2020-03-11 0k

Typora+Picgo图片自动上传打造Markdown写作神器

1、Markdown神器:Typora Typora 是一款支持实时预览的 Markdown 文本编辑器。它有 OS X、Windows、Linux 三个平台的版本,并且由于仍在测试中,是完全免费的。 官网地址:https://www.typora.io/ 2、图床工具:Picgo 将本地图片上传到七牛云、腾讯云COS、GitHub等图床。 3、如何实现Typora图片自动上传 1、在Typora 依次点击 文件 –> 偏好设置 –> 图像 2、点击下载PicGo,填写PicGo启动文件路径 4、PicGo相关设置 PicGo默认安装了几个插件腾讯云、阿里云、七牛云、GitHub等,这里已blog-uploader这个插件为例, 这里收集了一些其他插件:https://github.com/PicGo/Awesome-PicGo 点击 插件设置 –> 搜索插件 –> 安装 点图床设置 –> 设置为默认图床 –> 确定 支持: 拖拽 粘贴板直接粘贴 5、相关错误解决: 如果报错先检查一下picgo设置Server是否开启,端口是否是36677 如果报什么upload文件夹错误,检查一下这个路径是否有权限读写权限C:\Program Files\Typora\upload

markdown typora picgo
阅读更多
Vuepress起步
前端
2020-03-11 0k

Vuepress起步

1、安装 npm install -g vuepress 如果慢或者安装失败可以用cnpm替换,或者yarn # yarm yarn global add vuepress #cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org #如果已安装请忽略 cnpm install -g vuepress 2、创建项目目录 mkdir vuepress-starter && cd vuepress-starter 3、新建一个 markdown 文件 echo '# Hello VuePress!' > README.md 运行项目 vuepress dev . 4、访问站点 http://localhost:8080/ 初始化项目 npm init -y 执行命令后,项目根目录会出现一个package.json,我们修改scripts节点 "scripts":{ "dev":"vuepress dev docs", "build":"vuepress build docs" } 修改之后: { "name":"vuepress-starter", "version":"1.0.0", "description":"", "main":"index.js", "scripts":{ "dev":"vuepress dev docs", "build":"vuepress build docs" }, "keywords":[ ], "author":"", "license":"ISC" } 创建基本目录

markdown vuepress Vue
阅读更多
浏览器保留页面跳转前的请求记录-持续记录
2020-03-08 0k

浏览器保留页面跳转前的请求记录-持续记录

开发中往往会遇到这样的情况,调试一个请求,但是请求中有报错的跳转,结果一刷新页面就自动跳转了,也看不到请求报错,这个时候只要勾选上preserver log即可 谷歌: 火狐:

浏览器 开发者工具 网络调试
阅读更多
.Net Core项目使用Docker容器部署到Linux服务器Centos7
后端
2020-02-11 0k

.Net Core项目使用Docker容器部署到Linux服务器Centos7

创建项目 选择 ASP.NET Core Web 应用程序 可以在创建时直接勾选【启用Docker支持】选择Linux(图1),也可以在已有项目右键添加Docker支持(图2) 图1 图2 项目发送至Linux服务器,我这里是上传到github,然后在linux服务器通过github下载项目 git下载项目 git clone https://github.com/raikay/firstdemo.git 构建镜像 docker build -t firstdemo . -f firstdemo/Dockerfile 如果构建dotnet环境太慢,可以使用腾讯加速镜像下载 docker pull ccr.ccs.tencentyun.com/dotnet-core/aspnet:3.1-buster-slim docker tag ccr.ccs.tencentyun.com/dotnet-core/aspnet:3.1-buster-slim mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim docker pull ccr.ccs.tencentyun.com/dotnet-core/sdk:3.1-buster docker tag ccr.ccs.tencentyun.com/dotnet-core/sdk:3.1-buster mcr.microsoft.com/dotnet/core/sdk:3.1-buster docker build -t firstdemo . -f firstdemo/Dockerfile 运行镜像 docker run -d -p 1080:80 --name myfirstdemo firstdemo 浏览器访问 http://192.168.198.131:1080/WeatherForecast 浏览器显示效果 Dockerfile解释 #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

DotNet Docker Centos
阅读更多
Dto / Model / Entity 区别
后端
2020-02-11 0k

Dto / Model / Entity 区别

Entity 数据表对应到实体类的映射 Model Model是MVC中一个概念,可能不和Entity一一对应,因为展示在View层中数据可能是一个Entity的精简,也可能是多个Entity的组合。 Model是一个高度优化组合或者精简后的一个用于在View层展示数据的对象。 DTO 数据传输对象(Data Transfer Object)。 用于系统间数据传输的对象,数据传输目标往往是数据访问对象从数据库中检索数据。 鸣谢: https://www.zhihu.com/question/25256772 http://www.liuhuachao.com/blog/2018/05/20/entity-model-dto/

dotnet DTO Model
阅读更多