Null's Notebook

代码笔记

正在浏览 编程笔记 里的文章

LDAP 全称是 Lightweight Directory Access Protocol,中文名称:轻型目录访问协议,广泛用于统一认证。 下面实现了简单的用户名、密码验证: using System; using System.Collections.Generic; using System.Text; using System.DirectoryServices.Protocols; using System.Net; namespace com.hetaoos.Authenticator { /// <summary> /// Ldap 验证 /// http://blog.hetaoos.com /// </summary> public class LdapAuthenticator { /// <summary> /// Ldap 验证 /// </summary> /// <param name=”domain”>服务器</param> /// <param name=”username”>帐号</param> /// <param name=”pwd”>密码</param> /// <returns>是否验证成功</returns> public static bool ValidateUser(string [...]

关于泛型的介绍和基本操作,可以参见 MSDN,以及各种博客文章:C# 泛型简介 、泛型介绍(C# 编程指南),这里就不再赘述。 下面是要用到的泛型: internal interface IStack { } public class Stack<T> : IStack where T : new() { public T Value { get; set; } } public class IntStack : Stack<int> { } public class DoubleStack : Stack<double> { }

使用方式及原理:http://code.google.com/p/chnroutes/ 因为一些众所周知的原因, 来自中国大陆的网民想要访问非本国资源时总会那么的不方便, 这促使了海外vpn供应商在中国的繁荣. 使用海外vpn访问已经成为一些需要经常访问海外资源的中国网民的必要装备. 但通常这些vpn都是有流量限制的, 除此之外一些中国内部的资源也限制海外的ip访问. 本项目的就是提供一些启动脚本给vpn用户, 在vpn拨号之后修过路由表,让他们在使用vpn访问国外资源的同时, 能用非vpn线路高速访问本国资源. Due to well-known reasons, it’s always inconvenient for Chinese netizens and foreigners who live in China to access information physically outside of China via internet. Timeouts and connection resets are the most common results you will get when you trying to visit websites that are [...]

2011/11/02 V1.1.2 1,界面微调 2011/11/01 V1.1.0 1,增加自定义运营商选项 2,增加自动伪装功能,先设置一个预设运营商,然后点击菜单键选择“启用自动伪装”,即可启用。 3,增加英语 Android Market 电子市场 会根据运营商的不同,而呈现不同的应用列表,身在天朝,有着深刻的体会: 1,搜索”Google”,谷歌地图,Gmail 并未出现在搜索结果中。 2,查看不到没有任何手收费应用。 之前在网上找到个免费的 Market Enabler ,但这个东西有个问题: 1,系统启动后,必须要在电子市场运行之前操作,不能即时切换 2,有广告 后来更具他的源码及帮助,找到了相关的原理 Android market switch

PacMaker — By Null PACMaker#hetaoos.com http://blog.hetaoos.com 由于 http://autoproxy2pac.appspot.com 经常超载,只好自己弄个生成器了。

在 C# 中,想获取Web网站上的网页或者下载其中的文件,非常方便。有三种常见方式可以使用:WebBrowser、WebClient、WebRequest,WebBrowser 不仅可以获取到网页的内容,还可以呈现出来,当然还支持 Cookies;WebClient 提供多种请求方式,满足大多数要求,但默认没有支持 Cookies,要继承修改下才得;WebRequest 几乎可以完全自定义,应用更灵活。

有些时候,某个方法的返回值是个枚举类型,比如描述登录结果: public enum LoginResult { Success, WrongPassword, UserNotExist, Forbidden, Unknown } 当前段UI获取到登陆方法的返回结果时,就需要告诉用户登录是否成功、什么原因失败的。如果直接使用 ToString() 方式直接返回枚举变量的名称,显然不合适。通常的做法是使用各 switch 来转换,弊端是要写过多的代码;或者构造一个 string[] msg ,再根据 LoginResult 的 int 值来相应的取,弊端是类型的int值必须是连续的或者 string[] msg 的个数大于或等于 枚举类型的最大 int 值 ,一一对应起来也比较麻烦 。

有时候,为了快速批量处理已经实现某个基类或者某个接口的子类,需要通过反射的方式获取到他们的类类型(Type),然后再通过 Activator.CreateInstance(objType); 或者 Assembly.Load(path).CreateInstance(typeName); 或者 Assembly.LoadFile(filePath).CreateInstance(typeName); 创建对象实例。

有些时候,需要快速的判断用户所提交的文件是否是一个合法的图像文件,如果是本地操作,可以使用以下代码来判断该文件是否存在、是否可读、是否是图像文件、图像文件的格式等:

有些时候,需要将一个类保存到文件用,C# 支持三种序列化:BinaryFormatter、SoapFormatter、XmlSerializer。
BinaryFormatter,不能手动修改数据,适合于 .NET 程序间交换数据。
SoapFormatter,可以手动修改数据,适合于 .NET 程序间交换数据。
XmlSerializer,这个可读性很强,适合于跨平台、跨语种交换数据,还可以用来保持配置文件。