摘要: ASP.NET的优点我说过很多次了,也就是各个控件独立负责自己内部的逻辑,这是一个好事情,因为它解决了原本ASP处理逻辑耦合度高的问题。然而这是需要代价的,那就是引入ASP.NET页面生命周期,随着控件的多层嵌套,应用的复杂度增加,我们再次陷入泥潭!其实这个文章题目我两个月前就写下了,可是一直没想写完它,直到今天我在这个泥潭中泡了几个小时,于是决定先从泥潭中跳出来把文章写完,再跳进去继续解决问题。问题是这样的:1. 使用MS AJAX 1.0 Beta2 + 2.0 CTP新建一个项目,同时在Bin中放上Beta2的AjaxControlToolkit.dll。2. 扔上一个Accordion 阅读全文
posted @ 2010-01-29 15:19 deepwishly 阅读(141) 评论(0) 推荐(0)
摘要: ASP.NET编程模型中ASP.NET页面生命周期是指什么呢?它包括什么呢?ASP.NET编程模型之ASP.NET页面生命周期具体的过程有哪些呢?下面就开始我们的讲解吧:ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。了解页的生命周期非常重要,这样就能在合适的生命周期阶段编写代码,以达到预期效果。此外,如果开发自定义控件,则必须熟悉页生命周期,从而正确地初始化控件,使用视图状态数据填充控件属性以及运行所有控件行为逻辑。ASP.NET编程模型之页面生命周期执行一系列步骤:页面的初 阅读全文
posted @ 2010-01-29 15:05 deepwishly 阅读(149) 评论(0) 推荐(0)
摘要: 问:C# 加密后为何有两种结果的字符串?比如 cftea 的 MD5 加密后:有的人的结果是:c2e1861ca90e67ce1f9a62f9c27d8bdc有的人的结果是:wuGGHKkOZ84fmmL5wn2L3A答:这是对字节的两种不同表示结果。第一种是用十六进制表示的(FormsAuthentication.HashPasswordForStoringInConfigFile 就是这种,只是是大写的),具体请参见 BitConverter。如果用 BitConverter 时没有替换掉“-”的话,加密结果中还会有“-”分隔开。第二种是用的 Base64 编码,具体请参见 Base64 阅读全文
posted @ 2009-12-25 23:29 deepwishly 阅读(263) 评论(0) 推荐(0)
摘要: 在 System.Security.Cryptography 中,我们可以看到有许多类,有些类还很相似,比如:System.Security.Cryptography.SHA1System.Security.Cryptography.SHA1ManagedSystem.Security.Cryptography.SHA1CryptoServiceProvider这三个类有什么关系呢?SHA1 是抽象类,SHA1Managed 和 SHA1CryptoServiceProvider 继承于 SHA1。SHA1Managed 和 SHA1CryptoServiceProvider 有什么区别呢?S 阅读全文
posted @ 2009-12-25 23:27 deepwishly 阅读(241) 评论(0) 推荐(0)
摘要: 要安全地存储密钥,应将密钥存放在密钥容器中,而不是明文存放在文件中。如果您不了解密钥容器,可以参照 MSDN 上的 了解计算机级别和用户级别的 RSA 密钥容器。CspParameters 的名称空间是:System.Security.Cryptography创建和读取密钥容器CspParameters cp = new CspParameters();cp.KeyContainerName = ContainerName;RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);创建和读取密钥容器都使用上述代码:如果密钥容 阅读全文
posted @ 2009-12-25 23:26 deepwishly 阅读(721) 评论(0) 推荐(0)
摘要: Rijndael 属对称加密,对称加密在加密和解密时都使用相同的密钥。2000 年 10 月,NIST 选择 Rijndael(发音为 "Rhine dale")作为 AES 算法,用以取代 DES。Rijndael 的名称空间是:System.Security.Cryptographybyte[] plaintextBuffer = System.Text.Encoding.UTF8.GetBytes("明文"); //加密Rijndael rijndael = Rijndael.Create();ICryptoTransform transform 阅读全文
posted @ 2009-12-25 23:25 deepwishly 阅读(323) 评论(0) 推荐(0)
摘要: TripleDES 属对称加密,对称加密在加密和解密时都使用相同的密钥,速度快。TripleDESCryptoServiceProvider 的名称空间是:System.Security.Cryptographybyte[] plaintextBuffer = System.Text.Encoding.UTF8.GetBytes("明文");//加密TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();ICryptoTransform transform = tripl 阅读全文
posted @ 2009-12-25 23:24 deepwishly 阅读(779) 评论(0) 推荐(0)
摘要: RSA 属不对称加密,使用一个公钥一个私钥,公钥可以公开用以加密,私钥严格保密用于解密,RSA 适合于数据量不大的加密,比如加密对称加密的密钥。RSACryptoServiceProvider 的名称空间是:System.Security.CryptographyRSACryptoServiceProvider rsaSend = new RSACryptoServiceProvider();string plaintext = "明文"; //明文byte[] ciphertext = rsaSend.Encrypt(System.Text.Encoding.UTF8.G 阅读全文
posted @ 2009-12-25 23:23 deepwishly 阅读(322) 评论(0) 推荐(0)
摘要: RSA 实际应用中是:接收方产生公钥和私钥,发送方用其公钥加密,再把加密后的内容发送给接收方。CspParameters 的名称空间是:System.Security.CryptographyCspParameters cpSend = new CspParameters(); //Csp = Cryptography Service ProviderCspParameters cpReceive = new CspParameters();cpSend.KeyContainerName = "SendTestContainer";cpReceive.KeyContaine 阅读全文
posted @ 2009-12-25 23:23 deepwishly 阅读(287) 评论(0) 推荐(0)
摘要: 创建散列码的方法非常多,即使是同一种散列算法也可以通过许多类来实现,前面章节介绍的算一种,下面再介绍一种。以 SHA1 为例:string plaintext = "明文";byte[] srcBuffer = System.Text.Encoding.UTF8.GetBytes(plaintext);HashAlgorithm hash = HashAlgorithm.Create("SHA1"); //将参数换成“MD5”,则执行 MD5 加密。不区分大小写。byte[] destBuffer = hash.ComputeHash(srcBuffer 阅读全文
posted @ 2009-12-25 23:21 deepwishly 阅读(282) 评论(0) 推荐(0)