C# Xml序列化Dictionary类

小柊 发表于 2017年09月16日 17时57分37秒

一、扯淡背景

本人一直有个习惯就是开发的时候把一些程序需要使用的后期可能会变动的配置做成Xml写到本地文件里,当每次程序启动的时候再读取出来,以免因为配置变动导致重新修改代码。

最近的一次更新调整中,需要在配置类中加入字典类Dictionary<TKey, TValue>。

结果不加不要紧,一加这个字典类,在序列化为Xml的时候直接抛出了异常:

浏览内容

C# Docker开发(一) Docker的安装

小柊 发表于 2017年09月06日 22时41分17秒

序、写在最开始的扯淡

最开始听说Docker的时候,还是两年前我读大三的时候。那时候专业主任在课上跟我们一本正经的说这玩意儿会火,然而那时候Docker和C#是八竿子打不着的两个事物,然后当时我对py也是一般般的水平,所以也就没特别去在意它。

浏览内容

Docker容器中MySQL最大连接数被限制为214的解决方案

小柊 发表于 2017年08月02日 23时58分29秒

一、背景

话说笔者在上次的博客里简单的讲了一下调整MySQL最大连接数的方法。在文章的最后笔者提到了还有一些特殊情况比如说Docker中,会导致MySQL的最大连接数被限制在一个值上。今天笔者就要来讲一下为什么在Docker环境中会出现这个问题。

这次的问题也是在公司实习的时候碰到的。当时导师要笔者去部署一个LAMP环境(不要问笔者为什么用docker还要把apache+PHP和MySQL塞在一起,这个问题您得问笔者导师),然后要调整一下Apache和MySQL的最大连接数。在调整结束之后笔者就想着要不进去看看有没有设置成功,就进入Docker容器的MySQL控制台,查看MySQL的最大连接数,结果是笔者之前设置的最大连接数并没有生效,MySQL的最大连接数被限制在了214。

浏览内容

Linux下修改MySQL最大连接数

小柊 发表于 2017年07月30日 13时30分10秒

序、扯淡

其实这个问题在网上的解决方案一搜就是一堆。本来并不打算单独写篇博客水一下的。但根据安排,后面有篇博客(暂定八月发表)的内容是基于本篇文章的内容继续深入的。所以还是放上来水一下。

 

一、背景

众所周知的是,MySQL在Linux上默认最大连接数只有100左右。对于一般的系统来说,这是一个相对合理的数字。但对于一些特殊系统来说,这么点连接数就明显有点不太够用了。

 

最近在实习的地方,需要部署一个SQL注入的漏洞环境用于演示。而在演示期间会使用Sqlmap进行注入点扫描,Sqlmap最大可以开启10个线程进行扫描工作,也就是说最坏的情况下,只要十个人就能把演示用的靶机打宕。

这当然不行了啊,你随便就打宕了还做什么演示啊。所以这种情况下,我们就需要对MySQL的最大连接数进行修改。以免出现MySQL: ERROR 1040: Too many connections的情况。

浏览内容

去除Firefox(火狐)浏览器52后新增的不安全密码警示

小柊 发表于 2017年07月02日 23时46分57秒

从Firefox(火狐浏览器)从52.0版本开始,新增了一个不安全密码警示功能,简单的来说就是在HTTP访问需要输入用户名密码等隐私数据时,火狐会在输入密码时提示:

此连接不安全,在此页面输入的登陆信息可以被窃取。

大概就是下图这个样子:

浏览内容

Docker Build时出现Kernel panic的解决方案

小柊 发表于 2017年07月02日 21时22分20秒

一、背景

最近在公司一直在使用Docker去布置环境,然后发现有个问题:在公司虚拟机里,当使用docker build命令去构建Dockerfile的时候,一旦遇到RUN chmod指令,就会直接卡死,不再继续。

浏览内容

Asp.net MVC 全局字符串参数过滤前后空白字符

小柊 发表于 2017年06月25日 21时15分27秒

序、扯淡

又是在不知不觉之中,一个月就这么过去了。这一个月里发生了挺多的事情,比如说大学毕业(虽然辣鸡学校扣了毕业证和学位证,最后只能申请延期毕业,这里的大学毕业仅仅是参加了毕业仪式罢了);工作一直不能稳定下来,现在的公司部门编制满了,如果需要转正就需要换部门,要么就直接换工作(我现在越来越偏向后者了);在这六月里,杭州也进入了梅雨季节,连绵不断的阴雨天气搞的整个人都没有心情和精神;拖欠辅导员的大学感悟一拖就是两个月,现在还在绝赞拖稿中……

唉……

 

一、背景

今天我们还是以一个案例切入,讲解一下Asp.net MVC中筛选器的实际使用。

空格这个东西真是让人又爱又恨,你说离了它不行,多了它也要出事儿。最近自己在开发自用的一套系统里,一次重置密码操作后,发现新密码怎么都登陆不上去,查了后台数据库,发现密码确实已经更新了,但具体密码被hash过了,看不到当时设置的新密码,后来突然想起现在的系统里已经布满了我的日志钩子,查了一下操作日志才发现当时提交新密码的时候手滑在密码最后加了一个空格……

为了在实际上线的时候不让用户发生这种问题,我们可以在使用参数前,先调用字符串参数的Trim()方法,去清除字符串变量前后的空字符串。不过随着项目越来越大,提交参数的地方越来越多,在每次使用参数前调用Trim()方法的做法明显不够优雅(我个人的编程优雅之道就是“用最少的代码做最多的事”)。那优雅的方法是怎么做的呢?

浏览内容

MySQL 5.6.6+ 使用弱密码

小柊 发表于 2017年05月31日 22时51分04秒

序、扯淡

不知不觉又是一个月过去了,突然想起来这个月貌似还没有给博客除过草,赶紧水一篇再说。

最近回到杭州实习了,但工作的地方和家隔得挺远,来去地铁一个小时,还要再算上大概45分钟的公交,下班吃完晚饭回到家也总要20点了,随便弄一下就要准备睡觉了,所以一直没有什么时间去搞别的,博客也就一直没更新。

 

一、背景

之所以会写这篇文章,主要是因为工作的需要。公司内网的几个测试用虚拟机root密码都是同一个,而MySQL的密码用的也是弱密码(说出来也无妨,就是toor),毕竟是在公司内部自己用的,所以并不会设置非常复杂的密码。

但之前的博客里也提到过(《MySQL 5.7以上 root用户默认密码问题》),MySQL 5.7以上默认要求强密码,不允许类似于“toor”这种弱密码,那该怎么办呢?

浏览内容

CentOS 7 使用证书登陆SSH

小柊 发表于 2017年04月29日 22时08分44秒

序、扯淡

大家好啊,又是好久没有出来冒泡了,上一次发博客还是3月7号的事情了,想想再不发篇日志,我的博客四月就要开天窗了…无奈最近毕业论文和公司实习忙到死,而且现在手上没什么特别能拿出来的干货,只好拿以前没写完的日志填填坑。然而吧,这篇日志其实也坑了很久了,是16年1月没写完就一直坑在那的,艾玛,真是深坑。

 

好了,废话少说,进入正题。

浏览内容

C# 正则表达式简单验证手机号码

小柊 发表于 2017年03月07日 23时39分41秒

老样子,废话少说一句话系列:

C#用下面的函数进行正则匹配:

#region 验证字符串是否为手机号码 + public static bool IsPhoneNumber(string phoneNumber)
/// <summary>
/// 验证字符串是否为手机号码
/// </summary>
/// <param name="phoneNumber">待验证字符串</param>
/// <returns>
/// 验证结果
/// <para> true  :输入字符串为有效的手机号码</para>
/// <para> false :输入字符串为无效的手机号码</para>
/// </returns>
public static bool IsPhoneNumber(string phoneNumber)
{
	return Regex.IsMatch(phoneNumber, @"^1(3[0-9]|5[0-9]|7[6-8]|8[0-9])[0-9]{8}$");
} 
#endregion

 

现在很多时候,网站都会需要用户提供自己的手机号码。不过很多时候用户会选择随便输入11位数字,如果去在提交时不及时发现,可能到时候就是白白调用一次短信发送接口。如果可以,我们后台开发者更希望能在用户提交时发现明显不合法的手机号码,从而阻止提交保存。那该怎么做呢。

浏览内容