Welcome 微信登录

首页 / 网页编程 / ASP.NET / Enterprise Library 2.0 Hands On Lab 翻译(8):异常应用程序块(二)

Enterprise Library 2.0 Hands On Lab 翻译(8):异常应用程序块(二)2010-03-02 cnblogs TerryLee练习2:异常处理策略

通过本练习将学会使用异常处理应用程序块的包装策略,来处理一些带有敏感信息的异常。

第一步

打开Puzzler2.sln 项目,默认的安装路径应该为C:Program FilesMicrosoft Enterprise Library January 2006labscsException Handlingexercisesex02,并编译。

第二步 保护服务中"Add Word"函数的代码访问安全

1.在解决方案管理器选择项目PuzzlerService中的Dictionary.cs文件,选择View | Code菜单命令,为方法Add Word加上代码访问安全特性。

// TODO: Add security attribute
[PrincipalPermission(SecurityAction.Demand, Role = "Grand PoohBah")]
public static Boolean AddWord(string wordToAdd)
{
if (!IsWord(wordToAdd))
{
// It is not alphabetic! Throw an exception
throw new ApplicationException(
"Word to add does not consist of alphabetic letters");
}
if (Dict[wordToAdd] == null)
{
Dict.Add(wordToAdd, wordToAdd);
}
return true;
}

现在该方法只可以被角色Grand PoohBah所执行。注意要修改的方法在Dictionary.cs中而不是DictionaryService.cs。

2.选择Debug | Start Without Debugging菜单命令运行应用程序。在Word to check文本框中输入数字并单击Add Word按钮。这将会引发服务的AddWord方法抛出一个SecurityException异常信息,在事件查看器中可以看到。

这里SecurityException信息从服务端传到了客户端,其中包含的信息将会有助于攻击者来攻破我们的系统安全。所以应该是在服务端记录异常信息,而只发送很少的信息到客户端。

3.关闭应用程序。