09 2012 档案
摘要:下面的是中文翻译,有些扯淡的话就略过了,想看原文,请到这里对于预编译指令,作者分成了几篇文章来讲解的。鉴于翻译后的文字较少,我把作者的几篇合为了一篇。下面进入正题。一、总揽:想要编写特定平台的代码,可以使用预编译来实现。Silverlight工程有默认的“SILVERLIGHT”预编译声明,对特定平台可以选择包含或者排除代码。可以通过使用#if ....#endif 包围的代码来实现。比如:#if SILVERLIGHT //Silverlight and Windows Phone#else //WPF#endif或者#if WINDOWS_PHONE //Windows Phone#en.
阅读全文
摘要:开源API链接地址:The Legion of the Bouncy Castle Bouncy Castle,简称为BC,原本是java的一个开源JCE提供者,后来也提供了C#版本的API,我下载其编译好的DLL,在C#项目中直接引用,用其几个API,产生我指定位数的公钥和私钥(目前是1024位,但产生CA的密钥时,要2048位才能满足安全需求)。虽然开源很好很强大,但这个API就是文档很缺陷,C#的文档更是少得可怜,没办法,下载源代码慢慢看吧。。。 在接下来的几篇关于CA文章中,大体按下面链接网址的思路去整理,不过整理出来的是C#版本的实现,基本目标架设一个CA,产生用户使用的数字证书..
阅读全文
摘要:因silverlight不支持DES(X509)加密,服务端与WPF本来是用X509加解密的,因为要兼容SL,所以改用AES来完成,但是不幸的是在silverlight中虽然支持AES却不支持RijndaelManaged类,只能使用AesManaged类来实现了,具体实现代码如下:/// <summary> /// 使用AES加密字符串 /// </summary> /// <param name="encryptString">待加密字符串</param> /// <param name="encryptK
阅读全文
摘要:今天在笔记本上用VS2010打开台式机上编辑的SL4的工程,全部提示不能加载,很是郁闷;于是把以前备份的4.0的EXE重新安装,就出现下面的错误“必须先安装与 Silverlight Tools 4 语言版本相一致的 Visual Studio 2010、Visual Web Developer 学习版 2010 或 Visual Phone Developer 学习版 2010,Silverlight Tools 的安装才能继续。以下网址提供了其他语言版本的 Silverlight Tools: <A HREF="[url]http://go.microsof
阅读全文
摘要:为啥这么常用的方法在Silverlight里居然没有呢?自己写一个:usingSystem;usingSystem.Linq;namespaceSampleApp{publicclassEnumHelper{publicstaticT[]GetValues<T>(){Typetype=typeof(T);if(!type.IsEnum){thrownewInvalidOperationException("TypeparameterTshouldbeanenum");}varfields=type.GetFields().Where(fi=>fi.IsLi
阅读全文
摘要:我的解决方案是Silverlight+WCF的应用,Done Cretiria定义了需要在做完Service端的代码后首先运行事先定义好的Unit Test,确保在客户端使用Service之前Service是可以正确的运行的。在我创建Unit Test之前,需要在测试项目中添加对WCF Service的引用,而这时却出现了错误。Custom tool error: Failed to generate code for the service reference ××××××. Please check other error and
阅读全文
摘要:So today Borderlands 2 was released on steam for the USA.Since “FUCK YOU ASSHOLES” — I’m not going to wait another 3 days for it to unlock over here, I’ll leech the torrent instead.(at least for now). The Skidrow torrent works great btw Anyway, since my brother is on his own home LAN we have a nic..
阅读全文
摘要:随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求,因此1997年NIST 公开征集新的数据加密标准,即AES[1]。经过三轮的筛选,比利时Joan Daeman和Vincent Rijmen提交的Rijndael算法被提议为AES的最终算法。此算法将成为美国新的数据加密标准而被广泛应用在各个领域中。尽管人们对AES还有不 同的看法,但总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES设计有三个密钥长 度:128,192,256位,相对而言,AES的128密钥比DES的56密钥强
阅读全文
摘要:RSA是常用的非对称加密算法。近来有学生在项目中使用System.Security类库中的RSA加密算法时,出现了“不正确的长度”,这实际上是因为待加密的数据超长所致。.net Framework中提供的RSA算法规定,每次加密的字节数,不能超过密钥的长度值减去11,而每次加密得到的密文长度,却恰恰是密钥的长度。所以,如果要加密较长的数据,可以采用数据截取的方法,分段加密,实现如下: RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); byte[] data = ........; //要加密的数据 string pu.
阅读全文
摘要:Win7 下面查看当前端口对应的进程名字。一直以来习惯了使用 Active Port1.4来查看当前程序占用的端口,现在用到Win7下面,才发现这个好东西用不上了。真是没有想到其它好的办法来查看本机的端口占用的情况。只得乖乖的回到CMD下面:netstat -naoC:\Documents and Settings\administrator>netstat -anoActive ConnectionsProto Local Address Foreign Address State PIDTCP 0.0.0.0:25 0.0.0.0:0 LISTENING 1404TCP 0.0.0.
阅读全文
摘要:Strong Name(强名称)主要作用是用来程序集的统统一命名,通过文件名称、版本号(AssemblyVersion)、数字密钥的公钥记号(Public Key Token)、程序集的区域性设置(Culture)4部分信息来区分程序集。公钥记号还有一个重要用途,就是用来验证大型组织(也不一定是大型组织,只要你知道他的公钥记号就好)开发的.NET程序集。这样可以让程序集无法被伪造,安全性得到了提高。 首先,来谈一下版本号(文件名称就放过了:P),在程序集的Attribute中一共有三种版本号,分别是AssemblyFileVersion、AssemblyInformationalVersion
阅读全文
摘要:C#将Culture分为的Neutral Culture 和 Specific Culture,微软推荐使用 SpecificCulture(其实还有一类Invariant Culture微软不推荐使用,仅仅是周期较短的演示系统开发时推荐使用)当我们看到 en-US,es-ES等表示culture的名称时,可以这样进行识别横线前面的部分称为Neutral Culture,它是“与某种语言关联但不与国家/地区关联的区域性”的含义横线后面的部分称为Specific Culture ,它就是和某个地区国家有关的了通常采用这种写法,因此我们能很容易分辨这两种Culture,如:fr-FR只有一种特殊情
阅读全文
摘要:.NET的3C:CTS、CLS和CLR.NET结合Java和COM解决方案两者优点来解决互操作性问题。类似于COM定义的标准二进制格式,.NET定义了一个称为通用类型系统Common Type System(CTS)的类型标准。这个类型系统不但实现了COM的变量兼容类型,而且还定义了通过用户自定义类型的方式来进行类型扩展。任何以.NET平台作为目标的语言必须建立它的数据类型与CTS的类型间的映射。所有.NET语言共享这一类型系统,实现它们之间无缝的互操作。该方案还提供了语言之间的继承性。例如,用户能够在VB.NET中派生一个由C#编写的类。很显然,编程语言的区别不仅仅在于类型。例如,一些语言支
阅读全文
摘要:大家都知道.net开发的软件,无论WebForm项目还是WinForm项目,发布的时候都是编译成dll或者exe文件。但是我们经常会无论是出于学习还是其他什么目的,想查看软件源代码和解除软件的某些限制。这时反编译技术就派上了用场。上面提到的reflector就是这样一个工具。他可以把dll或者exe等目标文件反编译成源代码。如果目标文件没有经过混淆、加密等处理,往往反编译得到的源代码跟软件编译前的源代码几乎一模一样。这样就为程序的版权、安全等带来严重的隐患。另外还有个工具ILDASM可以把目标文件反编译成IL源代码。然后我们就可以修改IL源代码,然后再使用ILASM编译这个IL源代码,就可以得
阅读全文
摘要:今天在编译添加了程序集签名的工程的时候,意外遇到如下错误,试了很多方法都不见效。下面是错误信息:CA0001 : 读取模块“***”时遇到以下错误: 无法解析程序集引用: ***.Common.NormalModel, Version=1.0.4629.31944, Culture=neutral, PublicKeyToken=366fc8dc0356ba75CA0058 : 未能找到引用的程序集“***.Common.NormalModel, Version=1.0.4629.31944, Culture=neutral, PublicKeyToken=366fc8dc0356ba75”。
阅读全文
摘要:在做对ReprotViewer编程时,想做一个用户可以更改显示/打印列的功能,大致看了下,只需要通过对rdlc文件中改变其<Hidden>节点值为false/true,即可实现对应某列的显示或隐藏。但是,如果在初始编辑和设计报表时,没有设定列的隐藏,则<TableColumn>节点下,没有<Visibility>节点,(<Hidden>节点又在<Visibility>节点下),所以在设置前必须增加判断,如果没有<Hidden>节点,必须先增加<Visibility>和<Hidden>节点。使用如下语
阅读全文