获取 cpu id 和硬盘序列号

using System;
using System.Collections.Generic;
using System.Linq;
// NuGet search Management
using System.Management;
using System.Text;

namespace RegLib
{
public static class RegHelper
{
/// <summary>
/// 获取注册码
/// </summary>
/// <param name="password"></param>
/// <param name="data"></param>
/// <returns></returns>
public static string EncodeCode(string password, Dictionary<string, string> data)
{
if (data == null || data.Count == 0)
throw new ArgumentException("data can not be empty");

var sb = new StringBuilder();
foreach (var d in data)
{
sb.Append($"{d.Key}:{d.Value}").Append(',');
}
sb.Remove(sb.Length - 1, 1);
var text = sb.ToString();
var bsdata = Encoding.UTF8.GetBytes(text);
for (var i = 0; i < bsdata.Length; i += 2)
{
bsdata[i] = (byte)(~bsdata[i]);
}
text = Convert.ToBase64String(bsdata);
return AESHelper.AesEncrypt(text, password);
}

/// <summary>
/// 解密注册码
/// </summary>
/// <param name="password"></param>
/// <param name="code"></param>
/// <returns></returns>
public static Dictionary<string, string> DecodeCode(string password, string code)
{
var data = AESHelper.AesDecrypt(code, password);
var bsdata = Convert.FromBase64String(data);
for (var i = 0; i < bsdata.Length; i += 2)
{
bsdata[i] = (byte)(~bsdata[i]);
}
var text = Encoding.UTF8.GetString(bsdata);
var ret = new Dictionary<string, string>();
foreach(var it in text.Split(','))
{
var vs = it.Split(':');
if (vs.Length != 2)
continue;
ret[vs[0]] = vs[1];
}
return ret;
}

/// <summary>
/// 获取机器码
/// </summary>
/// <param name="cpuid"></param>
/// <param name="diskid"></param>
/// <returns></returns>
public static string GetMachineCode(string cpuid, string diskid)
{
var id = cpuid + diskid;
var bs = Encoding.ASCII.GetBytes(id);
for (var i = 0; i < bs.Length; i += 2)
{
bs[i] = (byte)(~bs[i]);
}
return Convert.ToBase64String(bs);
}

private static string GetCpuID()
{
string strCpu = null;
var myCpu = new ManagementClass("win32_Processor");
var myCpuCollection = myCpu.GetInstances();
foreach (var myObject in myCpuCollection)
{
strCpu = myObject.Properties["Processorid"].Value.ToString();
}
return strCpu;
}

private static string GetDiskID()
{
var mc = new ManagementClass("win32_NetworkAdapterConfiguration");
var disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
return disk.GetPropertyValue("VolumeSerialNumber").ToString();
}

/// <summary>
/// 获取当前电脑的机器码
/// </summary>
/// <returns></returns>
public static string GetCurrentMachineCode()
{
var cpuid = GetCpuID();
if (string.IsNullOrEmpty(cpuid))
return null;

var diskid = GetDiskID();
if (string.IsNullOrEmpty(diskid))
return null;

return GetMachineCode(cpuid, diskid).ToLower();
}
}
}

问题

配置错误: 在唯一密钥属性“fileExtension”设置为“.mp4”时,无法添加类型为“mimeMap”的重复集合项。

IIS高版本支持了 mp4 格式,所以 配置在 webconfig 里面的,就会提示重复配置

<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".m4a" mimeType="video/mp4"/>
<mimeMap fileExtension=".m4v" mimeType="video/m4v" />
<mimeMap fileExtension=".ogv" mimeType="video/ogg"/>
<mimeMap fileExtension=".webm" mimeType="video/webm"/>
</staticContent>

// 先移除就可以了
<staticContent>
<remove fileExtension=".mp4" />
<remove fileExtension=".m4a" />
<remove fileExtension=".m4v" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".m4a" mimeType="video/mp4"/>
</staticContent>

基于 ADO.NET 的技术,可以基于对象来管理数据的存取。

a domain model, a logical model, and a physical model

Code First
根据 metadata 创建数据库

// database
using Microsoft.EntityFrameworkCore;
MySql.EntityFrameworkCore


在 modle 目录下面添加 模型类

appsettings.json 添加 数据库连接字符串

"ConnnectionStrings":{
"DefaultConnection":"server=localhost;port=3306;database=monitor;user=root;password=lanbe123"
}

ef database-first

// 命令行工具, 根据数据库建模
dotnet tool install --global dotnet-ef
dotnet tool update --global dotnet-ef
// 用到的包
dotnet add package Microsoft.EntityFrameworkCore.Design
// NuGet 安装包
Pomelo.EntityFrameworkCore.MySql

// 生成类
dotnet ef dbcontext scaffold "Server=127.0.0.1;User=root;Password=lanbe123;Database=monitor" "Pomelo.EntityFrameworkCore.MySql"

安装 Microsoft.AspNetCore.Session
Startup file

public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSession();
DBEntities.ConStr = "server=www.myipp.info;user id=dev;charset=utf8;password=Myipp2015,.dev;persistsecurityinfo=True;database=monitor";
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

app.UseRouting();
app.UseSession();
app.UseEndpoints(endpoints => //端点中间件 对端点进行配置处理
{
endpoints.MapControllerRoute(name: "default", pattern: "{Controller=Home}/{Action=Index}/{id?}");//通过端点中间件实现路由配置 如端点与规则(pattern)相匹配,则推送给相应控制器的对应action
});
}


先泡30分钟,添加盐
起油锅煎炒一下排骨
添加开水炖

冬瓜切块,葱姜蒜小米辣,
起油锅,放入八角,炒出香味,放入冬瓜,半透明,放入调料,两勺水,生抽,盐,糖,胡椒粉,炖一会儿,少放点水淀粉勾住汤汁,可以裹在冬瓜上锁住味道。

油麦菜可以密植。油麦菜根系分布浅,所以消耗的水分比较多,在几乎全天都没有日照的环境,这些蔬菜也能健康生长。

水分:喜湿
光照:喜阳,中度光照,避免强光直射,耐阴,光照不够,幼苗叶子易发黄或者是发蔫,而且油麦菜长的小。

喜阳光,喜湿润,还要通风,避免因不通风导致根系受损

由于生菜的种子发芽需要光,所以只覆盖极薄的一层培养土即可,约0.2~0.3cm,如果这步拿捏不好的话,可能会阻碍发芽,建议新手略过此步,即不用覆土。而覆土的目的是希望给种子一个更加恒定的湿度环境,这样有利于提高发芽率。在种子发芽时,可以把培植容器放到光照充足的地方。不管是覆土还是不覆土,种子播下后都要用喷雾器喷下细密的水雾,淋湿种子,让种子吸水。喷水口不要离土壤太近,以免把种子冲走。要注意保温、保湿。一般播后2~3天出芽。生菜种子在25℃以上发芽困难,在夏季播种应在15℃~20℃条件下先行催芽,发芽后再播种。播后约两周进行间苗。移栽则在3~4片真叶时进行,苗距20cm。气温高于25℃难以发芽,所以夏天种生菜要催芽。如果是在7、8月份进行生菜种植,在播种生菜种子前,可以将种子浸泡在水中2个小时,随后用湿纱布对其进行包裹后,放在5℃的冰箱内,保持湿度,等到大部分露白时就可以播种了。

晾干水分,用厨房纸包裹,然后用保鲜膜包裹,或放入保鲜袋,根部向里面。
葱,香菜,芹菜,可以直接放在有水的容器里面,略微没过根部即可。

不清洗,切成需要使用的大小,冷凍:
蘑菇
香菇
金針菇

洗乾淨,切成需要使用的大小,冷凍:
山藥
蓮藕(泡醋水,擦乾並放保鮮袋中作保存。)
青蔥(冷凍的青蔥要使用再拿出來使用,如果退冰會變得爛爛的。)
芹菜
韭菜
南瓜
彩椒
青椒
茄子(切塊後,放到清水中浸泡後,擦乾並放保鮮袋中作保存。)
高麗菜

1-2天內先吃完的蔬菜

茼蒿
黃豆芽或綠豆芽
蘆筍
蘑菇
蓮藕(看台灣的人分享好像挺耐放的,但我在美國的華人超市買的,感覺都不太耐放。)

3-7天中要吃完的蔬菜

綠花椰菜(放太久,會由綠轉成黃色,就沒有這麼新鮮了。)
四季豆(放太久的話,會長斑點,看起來就沒這麼好吃了。)
甜豆
豌豆
韭菜
西芹
空心菜
小白菜
A菜
菠菜
青江菜
矮腳白菜
地瓜
馬鈴薯
白蘿蔔
香菇
九層塔
香菜
酪梨

可放10-14天的蔬菜

白花椰菜
佛手瓜
高麗菜
大白菜
南瓜
山藥
番茄
洋蔥
金針菇
涼薯(豆薯/洋地瓜)
胡蘿蔔
青椒
甜椒
茄子
生薑
大蒜
青蔥

陰涼通風的地方常溫保存就好:
南瓜
地瓜
馬鈴薯(鋁箔紙避光,跟著蘋果一起放,因為蘋果會釋放乙烯,可以抑制發芽;但是如果馬鈴薯太老,捏起來有點軟其實效果有限。)
涼薯(豆薯/洋地瓜)
番茄
洋蔥
大蒜
放到冰箱冷藏前,先去頭或葉,避免養分流失,再裝入塑膠袋中,能貯存更久:
白蘿蔔
紅蘿蔔
茄子(去蒂頭後,用沾濕的紙巾包裹。)
西芹(將芹菜葉去除,可以保留水份,避免水分散失,但是有時候葉子藏在裡面,很難完全拔除。)

超市买来的葱,根部保留一小段,直接就可以种到土壤中

温度:香葱喜凉爽的气候,香葱耐寒、耐热性较强,四季均可种植,发芽适温为1320℃,茎叶生长适宜温度1823℃,根系生长适宜地温1418℃,在气温28℃以上生长速度慢。
光照:香葱是中光植物,不需要强烈的光照,在强光照条件下组织容易老化,纤维增多,品质变差,但光照过弱,有机物积累少,生长也不良,表现为单株叶片细长,叶色淡黄。
水分:香葱叶片表面有蜡质,能减少水分蒸发,但根系无根毛,吸收肥水能力差,需水量比大葱要少,但不耐干旱,适宜土壤湿度为70%
80%,适宜空气湿度为60%70%的沙性土壤中种植。因此,在各生长发育期都必须供给适宜的水分,保持土表湿润,但不耐涝
土壤:种植香葱应选择地块平整,土壤应无污染或经无害化处理,排灌方便,耕作层深厚,结构适宜,理化性良好,以砂壤土或壤土为宜,土壤有机质含量应在1.5%以上,PH值在6.0
7.0之间
养分:香葱是喜钾植物,每生长1万斤分葱须从土壤中吸收纯氮30市斤,氧化钾35斤,五氧化二磷6斤,在粘壤土上栽培产量高,品质好。 香葱不适宜在沙土地块种植,需氮、磷、钾和微量元素均衡供应,不能单一施用氮肥。