通常,身份认证(Authentication)和授权(Authorization)都会放在一起来讲。但是,由于这俩英文相似,且“认证授权”四个字经常连着用,导致一些刚接触这块知识的读者产生混淆,分不清认证和授权的区别,甚至认为这俩是同一个。所以,我想先给大家简单区分一下身份认证和授权。
View Details在用 webapi 或者.net core 写接口时, 我们的时间类型往往是 datetime类型的, 如果直接返回, 前端拿到的结果往往这样这种格式 : 下面讲怎么改成我们想要的格式 webapi 在WebApiConfig.cs文件里的Register方法添加如下代码, 在接口返回的时候要用 ok(object) 这种格式.
1 2 3 4 5 6 7 |
//统一返回时间格式,配置返回的时间类型数据格式 config.Formatters.JsonFormatter.SerializerSettings.Converters.Add( new Newtonsoft.Json.Converters.IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" } ); |
.net core 2.X 在 Startup.cs 文件里 的 ConfigureServices的 AddMvc 追加下面的代码
1 2 3 4 |
services.AddMvc().AddJsonOptions(options => { options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; }); |
.net core 3.x 升级到.net core 3.0 以后,不在默认包含 NewtonsoftJson,而是默认使用System.Text.Json. 我们可以定义一个继承 System.Text.Json.Serialization.JsonConverter 的类,实现其Read 和 Write两个抽象方法. 然后再使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
/// <summary> /// 统一时间转换 /// </summary> public class DatetimeJsonConverter : JsonConverter<DateTime> { /// <summary> /// 读 /// </summary> /// <param name="reader"></param> /// <param name="typeToConvert"></param> /// <param name="options"></param> /// <returns></returns> public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { if (reader.TokenType == JsonTokenType.String) { if (DateTime.TryParse(reader.GetString(), out DateTime date)) return date; } return reader.GetDateTime(); } /// <summary> /// 写 /// </summary> /// <param name="writer"></param> /// <param name="value"></param> /// <param name="options"></param> public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options) { writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm:ss")); } } |
然后再 ConfigureServices 里添加
1 2 3 |
services.AddMvc().AddJsonOptions((options)=> { options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter()); }); |
.net core 3.x 使用 NewtonsoftJson序列化后 刚刚提到.net core 3.0以后序列化默认是使用System.Text.Json. 但是由于这个实在是不好用, 所以可以改回NewtonsoftJson,之后修改时间格式如下
1 2 3 4 |
services.AddControllers() .AddNewtonsoftJson((option)=> { option.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";//时间格式化 }); |
from: https://www.cnblogs.com/fancyblogs/p/12936939.html
View Details.netcore dotnet-svcutil -o d:\HisService.cs http://xxxx/Service.asmx?wsdl framework wsdl /language:c# /n:命名空间 /out:c:/WebServiceForAutoOrder.cs http://{url}/hisOrderReal/WebServiceForAutoOrder.asmx?WSDL
View Details//解决中文被编码
services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All));
[JsonConverter(typeof(DateConverter))]
public DateTime Date { get; set; }
——————————————————————————————
public class DateConverter : JsonConverter
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.String)
{
if (DateTime.TryParse(reader.GetString(), out DateTime date))
return date;
}
return reader.GetDateTime();
}
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString("yyyy-MM-dd"));
}
}
sqlsugar 不映射字段,sqlsugar 忽略字段。 利用特性SugarColumn,将IsIgnore设置为True即可!
1 2 |
[SugarColumn(IsIgnore = true)]//sqlsugar 忽略字段 public decimal MaxTemp { get; set; } |
这样Sqlsugar 增删改查数据库的时候自动跳过该字段,但是操作实体的时候依然可以访问到该字段,进行赋值或取值。 在SqlSugar中,如果你需要修改一个实体类的属性映射到数据库的字段名,你可以 使用SugarColumn属性,将ColumnName设为数据库里的的列名即可。
1 2 |
[SugarColumn(ColumnName = "NameOfStudent")] // 修改字段名为"NameOfStudent" public string Name { get; set; } |
这样Sqlsugar 增删改查数据库的时候数据库列名为“NameOfStudent”,但是操作实体的时候属性的名称是Name。 from:https://blog.csdn.net/djk8888/article/details/141600690
View Details解决方案,添加证书忽略
1 2 3 |
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.ServerCertificateValidationCallback = (_s, _x509s, _x509c, _ssl) => { return (true); }; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); |
from:https://www.cnblogs.com/real9527/p/17030336.html
View DetailsC#/.NET/.NET Core的定时任务调度组件你用过那些呢,是Timer,FluentScheduler,TaskScheduler,Gofer.NET,Coravel,Quartz.NET还是Hangfire,又或者是其他的定时任务调度框架/组件呢?你常用的实现定时任务调度的方法又是怎样的呢?
View DetailsList>();