为 npm 设置代理

npm 有两个代理设置,一个是 http 代理,一个是 https 代理。

在命令行设置代理服务器。

代理服务器可以使用小灰机(小灰机同时支持 socks 代理和 http 代理) 阅读全文

为 Visual Studio 设置 NuGet 代理

因为众所周知的原因,在国内使用 NuGet 时会经常无法下载包,严重影响工作效率,下面说一下如何给 NuGet 设置代理。

找到 NuGet 配置文件

NuGet 仅支持 HTTP 代理,Visual Studio 的 NuGet 配置文件位于 “ %appdata%\NuGet\NuGet.Config” 目录,此配置的作用域为当前 Windows 用户,详情可参考微软文档

设置 NuGet 代理

在 “ <configuration> ” 节下增加 “ <config> ” 节,添加 “ http_proxy” 配置项,值为 HTTP 代理服务器 url。

代理服务器可以是任何 http 代理,也可以用小灰机代理(小灰机本身即是 socks 代理也是 http 代理)。 阅读全文

CentOS 7 安装 .Net Core 环境

当前最新 .net core 版本为 2.1

打开 .net core 下载页面,https://www.microsoft.com/net/download/linux ,页面包含 .net core sdk 及 .net core runtime 两个安装包。

如果需要在 linux 上进行开发,要安装 .net core sdk 版本,不需要开发推荐安装 .net core runtime 版本。

点击 install .NET Core 2.1 Runtime ,进入下载页面,在下拉框中选择 Centos。

按提示输入以下命令

安装完成后运行 dotnet –info 查看版本信息

Log4net 配置输出文本, 按年月日分文件夹

在项目中新建 “log4net.config” 文件

 

配置好后在程序集 AssemblyInfo.cs 中加入

或者用代码初始化

 

MySql EF6 DBFirst 向导无法生成 edmx 解决方法(同:您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库提供程序)

1

使用 MySql EF6 DBfirst 生成模型时经常会遇到EF6模式无法选择的情况 究其原因, 还是因为没有正确的使用 Connector/Net. 下面说一下使用方法. 使用 MySql DBFirst 前先确保安装了 MySql, MySQL for Visual Studio, Connector/Net 注意: MySQL for Visual Studio, Connector/Net 版本要对应 MySql 版本.

新建一个项目, 从 nuget 中添加 EF6

在项目的”引用”上点右键添加dll引用. 选择扩展程序集, 勾选 MySql.Data.Entity for EF6 , 注意提示框中的版本, 一个是4.0, 一个是 4.5. 这个dll 是安装 Connector/Net 后才有的.
注意: 用 nuget 安装 MySql.Data.Entity 也会自动引用 MySql.Data.Entity.EF6.dll. 但是这个 dll 在生成 edmx 时会出错. 所以才要像上面一样从扩展中引用 dll

修改 config 文件

添加一行 provider

添加完如下所示

重新生成一下项目, 到这里问题就已经解决了. 下面是效果.

在项目中添加新的 “Ado.Net 实体数据模型”(即 edmx 文件)

如果数据源不是 MySql, 点更新, 修改为MySql.如果没有MySql Database , 说明 Connector/Net 没有安装或安装不正确. 重新安装.这里可以正确显示了.

无法正常卸载 Visual Studio 时的处理方法

因某些原因(例如删除了”C:ProgramDataPackage Cache” 中的内容)无法在卸载程序界面中卸载 VS, 可以使用下面的方法卸载.

首先准备 VS 安装介质, 如 .iso 文件, 加载到虚拟光驱中.

再以管理员权限运行 CMD, 转到 虚拟光驱的盘符, 输入以下命令

我的是社区版本, 如果是专业版或企业版, 只要将 vs_community 替换为对应介质中的程序名即可.

(转) C#如何验证一个PE文件的数字签名是否正确(1)

数字签名

本文转自 http://www.blogbus.com/softone-logs/105678346.html

作者:Eckel Chung blog地址:http://softone.blogbus.com/  转载请保留

—————————————————————————

(1)前言

和网上大量的讨论如何制作数字签名和验证数字签名的文章本同,本文使用微软自带的API进行PE文件数字签名有效性的验证,使用语言C#。

我们可以在windows系统下直接右键查看某个PE文件数字签名的有效性,如下图:

        这让我们想到,微软必然自带了对PE文件数字签名的验证办法,经过查找资料,确定其来自下图所示的dll文件里的WinVerifyTrust函数。

      该函数在C#里的调用原型如下:

 

关于这个函数的使用,可以查看MSDN上的说明

(2) 构建将要用到的数据结构

根据微软官方材料,我们在使用这个函数前还得先准备几个数据结构:

(3)构建我们的验证类

注意这里,WinVerifyTrust的返回值有多种,0表示数字签名各项指标都是正常的,其他代码我们下一部分再来讨论。

实测通过:

C# 使用 Socket 实现 http 协议全功能版

有人说用 Socket 请求 http 服务效率要比 HttpWebRequest 高很多, 但是又没有提供源码或者对比测试结果. 我对此很好奇, 到底能差多少? 所以决定自己写个类实现 Socket 请求 http 的功能.

下面的代码实现了基本的 http ,https 请求, 支持 gzip 解压, 分块传输.

经本人多次试验, 得出如下结论:

如果仅用 Socket 获取文本类型的内容, 且不考虑分块传输的情况, 那么 Socket 方式可比 HttpWebRequest 方式效率高 30%-40%.

如果考虑更多因素,需要做更多处理, 所以多数时候效率不如 HttpWebRequest, 当然与我写的代码效率有很大关系.

欢迎共同探讨技术问题,提供建议, 请留言,我会尽快回复.

 

申请免费代码签名证书

code sign

最近在研究代码签名技术, 花了不少时间, 下面记录一下从了解代码签名到获得一个有效的代码签名证书的过程.

首先说一下什么是”代码签名”:

代码签名即软件的所有者使用受全球认可的第三方发放的能证明其真实身份的 “代码签名数字证书” 为其开发的软件添加一个标记, 即所谓的 “签名”, 因而增强了可信度.
耳听为虚, 眼见为实, 有图有真象.

代码签名的作用:

证明软件在发行和传播过程中未经篡改, 增强安全性.
当软件中有涉及到安全方面或底层代码的地方, 如果没有代码签名, 系统会弹出警示框是否要继续安装或执行, 而签名之后的代码便会顺利通过安全检测, 不会弹出警示框.

代码签名的对象:

按照不同的系统和文件类型可以为多种文件进行签名. 比如微软常见的 .exe, .dll, .cab, .msi, .ocx, .sys, .cat, .vbs 等文件类型. Android 系统中的 .apk 文件. Java 中的 .jar 文件等.

代码签名需要的工具:

代码签名证书: 通过 sn.exe 自制证书或申请免费证书, 稍后重点介绍申请免费证书.
签名工具: .net 中为 SignTool.exe, 已随 Visual Studio 或 Windows SDK 安装.
时间戳服务器: 网络上有很多提供免费时间戳服务的机构, 最著名的有 Symantec 的时间戳服务, 下面列举一些常用的.
http://timestamp.verisign.com/scripts/timstamp.dll
http://timestamp.comodoca.com/authenticode
http://www.startssl.com/timestamp
http://timestamp.wosign.com/timestamp
http://timestamp.globalsign.com/scripts/timstamp.dll
http://www.trustcenter.de/codesigning/timestamp

申请代码签名证书: 阅读全文