木子屋 Dnawo's BLOG

2008-08 归档

共 42 篇

轻松加密ASP.NET 2.0 Web程序配置信息

一、简介 当创建ASP.NET 2.0应用程序时,开发者通常都把敏感的配置信息存储在Web.config文件中。最典型的示例就是数据库连接字符串,但是包括在Web.config文件中的其它敏感信息还包括SMTP服务器连接信息和用户凭证数据,等等。尽管默认情况下可以配置ASP.NET以拒绝所有对扩展名为.config的文件资源的HTTP请求;但是,如果一个黑客能够存取你的web服务器的文件系统的话,那么,Web.config中的敏感信息仍然能够被窃取。例如,也许你不小心允许匿名FTP存取你的网站,这样以来就允许一个黑客简单地通过FTP协议下载你的Web.config文件。 幸好,通过允许加密Web.config文件中选择的部分,例如节,或你的应用程序使用的一些定制config节,ASP.NET 2.0有助于缓解这个问题。配置部分能够很容易地使用编码或aspnet_regiis.exe(一个命令行程序)进行加密。一旦被加密,Web.config设置即可避开"虎视眈眈"的眼睛。而且,当以编程方式从你的ASP.NET页面中检索加密的配置设置时,ASP.NET会自动地解密它读取的加密部分。简言之,一旦配置信息被加密,你就不需要在你的应用程序中编写任何其它代码或采取任何进一步的行为来使用该加密数据。…

.NET验证控件Display属性值Static和Dynamic的区别

生成的代码为: 从生成的代码我们可以知道:Static转化为visibility:hidden,Dynamic转化为display:none,它们的相同点是都不能在页面上看到,但visibility仍会在页面中占据一定的位置!

ServerMagic无法调整NTFS分区大小

网上很多.NET源码都是用VS2005 SP1开发的,没打SP1补丁的VS2005无法打开,下载了补丁安装的时候却提示空间不足,看下C盘剩余空间只有0.9G,便想从其他分区分出一些空间来给C盘。下载了PartitionMagic 8.0却提示在Windows Server 2003上无法使用,搜索了半天说是ServerMagic才行,下载ServerMagicv4.0,安装,终于好了,发现只能调整FAT32分区的大小,NTFS无法调整,郁闷。

【推荐】木子屋会员管理系统(C#三层结构示例)

本示例为一个简单的多层结构会员管理系统,仅当学习多层结构用,如有不足之处欢迎告之。 开发环境: VS2005 + SQL Server2000|Access 2000 使用前配置: 请根据使用的数据库类型配置 Web.Config 相关内容。 使用SQL Server2000数据库请配置WebDAL和SQLConnectionString节点内容; 使用Access2000数据库请配置WebDAL和AccessConnectionString节点内容; 项目列表: MzwuCom.Web MzwuCom.Model MzwuCom.BLL MzwuCom.DALFactory MzwuCom.AccessDAL…

C#局部类

1. 什么是局部类型 C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。 局部类型适用于以下情况: (1) 类型特别大,不宜放在一个文件中实现。 (2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。 (3) 需要多人合作编写一个类。 局部类型是一个纯语言层的编译处理,不影响任何执行机制——事实上C#编译器在编译的时候仍会将各个部分的局部类型合并成一个完整的类。 2. 局部类型的限制 (1) 局部类型只适用于类、接口、结构,不支持委托和枚举。 (2) 同一个类型的各个部分必须都有修饰符 partial。…

.NET调用SQL脚本创建数据库及表示例

SQL脚本: Default.aspx: Default.aspx.cs: 说明: 1.在执行sql脚本前务必使用ChangeDatabase方法把当前连接数据库改为新库,否则将在master库上创建表; 2.务必把SQL Server2000生成的sql脚本中的GO全部改为半角分号";"; 3.保险起见可在sql脚本第一句使用use指定执行sql脚本所使用的数据库,做为对第1步的补充;

T-SQL中SCOPE_IDENTITY()和@@IDENTITY 的区别

SCOPE_IDENTITY() 和 @@IDENTITY 在功能上相似,因为它们都返回在当前会话中的任何表内所生成的最后一个标识值(IDENTITY 列中的值)。但是,SCOPE_IDENTITY() 只返回插入到当前作用域中的值,@@IDENTITY 不受限于特定的作用域。 例如,有两个表 T1 和 T2,在 T1 上定义了一个 Insert 触发器。当将某行插入 T1 时,触发器被激发,并在 T2 中插入一行。此例说明了两个作用域:一个是在 T1 上的插入,另一个是作为触发器的结果在 T2 上的插入。 假设 T1 和 T2 都有 IDENTITY 列,@@IDENTITY 和 SCOPE_IDENTITY() 将在 T1 上的 Insert 语句的最后返回不同的值。…

SQL Server2000临时表使用示例

1.本地临时表 2.全局临时表 SQL Server2000 联机丛书: 临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。 有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。 例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 ##employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表。…

T-SQL中truncate table和delete的区别

TRUNCATE TABLE 在功能上与不带 Where 子句的 Delete 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 Delete 速度快,且使用的系统和事务日志资源少。 Delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 Delete。 对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 Where 子句的 Delete 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。…