摘要:我们程序的威胁来自于各个方面.在互联网高度发达的今天, 安全性问题已经是企业软件开发所必须面对的最重要的问题. 从安全学的一般意义上来讲,安全性主要体现在两个方面: 敏感数据的泄露
敏感数据的破坏 从具体上来说, .NET 元数据机制的设计, 既方便了反射等强大特性的实现, 又同时给代码安全及程序运行时安全带来了巨大的隐患.迄今为止, 还未发现比较有效元数据可见性控制方法. 当然, 这不在本文的讨论范围之内. 我还是更愿意在这篇文章在针对.NET的内存分配机制讨论一个更具体的问题: 如何保护在内存中存储的敏感数据?
String的驻留机制带来的安全性问题 String是代码中使用频率... 阅读全文
艾伟:[WCF的Binding模型]之四:信道工厂(Channel Factory)
2011-08-29 00:02 by 狼人:-), 232 阅读, 0 推荐, 收藏,
摘要:由于信道管理器在客户端和服务端所起的不同作用,分为信道监听器和信道工厂。和服务端的信道监听其相比,处于客户端的信道工厂显得简单。从名称就可以看得出来,信道工厂的作用就是单纯的创建用于消息发送的信道。我们先来看看与信道工厂相关的一些接口和基类的定义。 一、信道工厂相关的接口和基类
对于信道监听器,WCF定义了两个接口:IChannelListener和IChnnelListener。与之相对地,WCF也为信道工厂定义了两个接口:IChannelFactory和IChannelFactory。这两个接口定义了信道工厂最基本的功能和属性,下面是这两个接口的定义: Code highlighti... 阅读全文
艾伟:[WCF的Binding模型]之三:信道监听器(Channel Listener)
2011-08-29 00:02 by 狼人:-), 183 阅读, 0 推荐, 收藏,
摘要:信道管理器是信道的创建者,一般来说信道栈的中每个信道对应着一个信道管理器。基于不同的消息处理的功能,将我们需要将相应的信道按照一定的顺序能组织起来构成一个信道栈,由于信道本身是由信道管理器创建的,所以信道对应的信道管理器也构成一个信道管理器栈,栈中信道管理器的顺序决定由它所创建信道的顺序。 对于WCF的信道层来说,信道管理器在服务端和客户端扮演着不同的角色,服务端的信道管理器在于监听来自客户端的请求,而客户端的信道仅仅是单纯的创建用于消息发送的信道。因此,客户端的消息管理器又称为信道监听器(Channel Listener),客户端的信道管理器则成为信道工厂(channel factory.. 阅读全文
艾伟:[WCF中的Binding模型]之六(完结篇):从绑定元素认识系统预定义绑定
2011-08-29 00:02 by 狼人:-), 188 阅读, 0 推荐, 收藏,
摘要:由于绑定对象由一系列有序的绑定元素组成,绑定元素最终决定着信道栈中信道的组成,而信道的组成最终又决定了信道栈对消息进行处理的方式和能力,所有要确定绑定的特性和能力,我们可以通过查看其绑定元素的构成来一窥究竟。为此我们我们写了一个简单的方法,用于列出一个具体的绑定对象所有的绑定元素,在介绍一个个具体的系统绑定中,我会使用该方法:
static void ListAllBindingElements(Binding binding){ BindingElementCollection elements = binding.CreateBindingElements(); for (in... 阅读全文
艾伟:WM有约(三):下一次是什么时候?
2011-08-29 00:02 by 狼人:-), 178 阅读, 0 推荐, 收藏,
摘要:Written by Allen Lee 不要留恋过去 怎样才能约束用户,不让其选择过去的日期呢?有一个很傻的办法,就是每次启动应用程序的时候,自动把MonthCalendar控件的MinDate属性的值设为今天。这样虽然禁止了用户选择过去的日期,却带来另外一些问题: 当月之前的日期无法查看。 和选项窗体的Min Date设置相冲。 有鉴于此,我们采用另一种办法,就是在用户选中某个日期时,判断这个日期是否已经过去,若是,则禁用Pin菜单项,若否,则启用Pin菜单项。那么,如何获知用户选中了某个日期?最简单的办法就是使用MonthCalendar控件的DateChanged事... 阅读全文
艾伟:.NET和J2EE该相互学习什么
2011-08-29 00:02 by 狼人:-), 131 阅读, 0 推荐, 收藏,
摘要:[前言] 写这篇Post源于我既做过.NET开发又做过J2EE开发的经历。在这样的转变过程中,我对单一平台开发所带来的思维局限性有了很多清晰却零散的想法。在看了振河兄的页面间传递变量的方法及使用范围的讨论之后,我更能体会到在不同的平台进行开发,思维方式会是如此之不同,原来那些零散的想法也随之不断在脑海中涌现,让我有了写下这篇Post的冲动。其实我一直都在宣扬一种观点:技术之间是相通的,精于触类旁通,善于联想是我们程序员应有的优势。我们在专注.NET技术的时候,不妨在工作间隙休息的时候看看.NET外面的世界。 提到.NET和J2EE,一般都会想到它们之间兵戎相见,水火不容的关系,毕竟两者都在.. 阅读全文
艾伟:.NET框架4.0中都有些什么?
2011-08-29 00:02 by 狼人:-), 184 阅读, 0 推荐, 收藏,
摘要:.NET 4.0让不同组件之间工作的更好
1. 兼容性一直是个令人很头疼的问题,在.NET 4.0中,在同一个进程中,不同运行时上的组件可以同时运行,我们称之为In process Side by Side。
2. 对于很多同时包含COM组件和托管代码的应用程序,Primary Interop Assembly (PIA) 一直程序在部署方面令人很头疼的问题。现在,.NET 4.0中加入了称为NO-PIA的新功能,使得Interop的版本类型匹配仅通过简单的属性(TypeIdentifierAttribute)和GUID就能实现,免去了繁杂的PIA部署,也减少了应用程序的部署大小。
3. P/ 阅读全文
艾伟:Silverlight 里如何实现隐式样式,ImplicitStyleManager 的实现思想
2011-08-29 00:02 by 狼人:-), 157 阅读, 0 推荐, 收藏,
摘要:在 WPF 中,我们可以方便的在全局范围定义一个样式,就可以应用到所有这种类型的对象,这就是所谓的隐式样式(implicit Style),比如: WPF中定义样式Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><Window x:Class="WpfImplicitStyle.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pres 阅读全文
艾伟:ORM With Versioning Control
2011-08-29 00:02 by 狼人:-), 126 阅读, 0 推荐, 收藏,
摘要:在一些场合,我们可能需要对业务实体进行版本控制。类似于源码管理工具一样,可以查看历史版本,可以回滚,可以Lock,一个业务实体对象,同一时刻只允许一个人进行更新操作。为了实现信息的可追溯性,这些功能应该是必不可少的。只是我们该在哪里去控制实体对象的版本呢? 我们希望将版本控制的功能,独立于某一个具体的业务实体,这样才可以实现最大共用和扩展性。显然,要实现这一功能最好的切入点应该是在数据持久层,也就是在实体持久化时,我们需要有一个统一的,通用化的接口来完成,同时在这里插入版本控制的功能。无疑,这里的最合适的持久化接口应该是ORM,那就相当于我们要实现一个带实现版本控制的ORM接口。 ... 阅读全文
艾伟:ASP.NET MVC,深入浅出IModelBinder,在Post方式下慎用HtmlHelper
2011-08-29 00:02 by 狼人:-), 203 阅读, 0 推荐, 收藏,
摘要:本文基于ASP.NET MVC Beta版本,正式版如有变动诸不另行通知!
在开始这个主题之前,我先简要介绍一下如何在ActionMethod中通过Form使用Post的方式进行传递参数。
原生类型参数传递
先看一个简单的示例: public ActionResult SimplePost(string number)
{ ViewData["Title"] = "SimplePost Page"; ViewData["Message"] = "Increase :"; #region Increase Simpl 阅读全文
艾伟:[WCF的Binding模型]之五:绑定元素(Binding Element)
2011-08-29 00:02 by 狼人:-), 143 阅读, 0 推荐, 收藏,
摘要:在上面的内容中,先后介绍了信道、信道管理器、信道监听器和信道工厂。从对象的创建来讲,信道管理器是信道的创建者。说的再具体点,客户端的信道通过信道工厂创建,服务端的信道通过信道监听器创建。但是信道工厂和信道监听器又是如果被创建出来的呢? 我们在一开始就已经说过,作为终结点三要素的绑定对象实现了所有的通信细节,并且通过创建信道栈实现了消息的传递。从这一点来说,绑定对象无疑是信道层所有通信对象的最终缔造者,所以信道工厂和信道监听器最终的创建都是靠绑定对象实现的。关于这个创建过程又和另一个重要的对象密切相关,那就是绑定元素。 1. 绑定元素(Binding Element)
绑定元素,顾名思义... 阅读全文
艾伟:Silverlight 2.0 之旋转木马
2011-08-29 00:02 by 狼人:-), 156 阅读, 0 推荐, 收藏,
摘要:序言:记得去年8月就开始接触Silverlight 1.0了,那时候刚出来,接触的人还不是很多,一位MVP讲师朋友说国内精通的也就几千人吧,因为自己对RIA一直也比较有兴趣,所以学起来也很快,想不到MS终于放出了2.0,立马给VS2008打上SP1的补丁,装上sl2.0 RTW(SDK),装上EB SP1...
正文:关于Sl2.0的一些新特性啥的我就不说了,直接切入正题,我之前在个人网站上的首页(见http://www.ajaxplaza.net/)一直是用Ajax来实现的,效率低不说,CPU那个使用率...
所以今天的主要内容就是使用SL2.0来实现旋转木马的效果,最终效果图如下(点我体验 阅读全文
艾伟:Web Services的魅力
2011-08-29 00:02 by 狼人:-), 167 阅读, 0 推荐, 收藏,
摘要:Web Services是当今最热门的企业级技术,越来越多的媒体热衷于谈论这个领域不断涌现的创新成果和各种联盟,已有的厂商纷纷宣布进入Web Services市场, 新兴的公司则从一开始就打起了实施Web Services的主意。 俗话说,无利不起早。Web Services之热也正源起于它的商业价值及其所蕴涵的商业利益。进一步讲,Web Services代表着Internet技术的重大发展,企业已经从 Internet技术中获得了种种利益,而Web Services将使这种利益更大化。Gartner Group于2002年提出:Web Services是人们思考如何获取和提供商业服务的一种. 阅读全文
艾伟:Azure Services Bus(服务总线)中的工作流(workflow)
2011-08-29 00:02 by 狼人:-), 426 阅读, 0 推荐, 收藏,
摘要:在Azure Services Platform上对于工作流服务的支持,一直是我很感兴趣的内容。当然也是疑问比较多的领域。鉴于这方面的资料太少,所以今天就从AzureServicesKit中的一个DEMO出发,来大概了解一下这方面相关内容。
注:今天的示例位于AzureServicesKit安装目录\Labs\Ex02-RoutingWithXPath\end文件夹。
(编辑注:是AzureServicesKit\Labs\IntroWorkflowService\Ex02-RoutingWithXPath\end文件夹)
该示例场景展示的是一个定单(order)流程,如下图: 注:图中的两. 阅读全文
艾伟:一个较完整的关键字过滤解决方案(上)
2011-08-29 00:02 by 狼人:-), 156 阅读, 0 推荐, 收藏,
摘要:如果您希望看到关键字过滤算法的话那么可能就要失望了。博客园中已经有不少关于此类算法的文章(例如这里和这里),虽然可能无法直接满足特定需求,但是已经足够作为参考使用。而本文的目的,是给出一个较为完整的关键字过滤功能,也就是将用户输入中的敏感字符进行替换——这两者有什么区别?那么就请继续看下去吧。:)
有趣的需求 关键字过滤功能自然无比重要,但是如果要在代码中对每个输入进行检查和替换则会是一件非常费神费事的事情。尤其是如果网站已经有了一定规模,用户输入功能已经遍及各处,而急需对所有输入进行关键字过滤时,上述做法更可谓“远水解不了近渴”。这时候,如果有一个通用的办法,呼得一下为整站的输入加上... 阅读全文
浙公网安备 33010602011771号