<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Enterprise Library 2.0 Hands On Lab 翻譯(8):異常應(yīng)用程序塊(二)

      練習(xí)2:異常處理策略

      通過本練習(xí)將學(xué)會(huì)使用異常處理應(yīng)用程序塊的包裝策略,來處理一些帶有敏感信息的異常。

       

      第一步

      打開Puzzler2.sln 項(xiàng)目,默認(rèn)的安裝路徑應(yīng)該為C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Exception Handling\exercises\ex02,并編譯。

       

      第二步 保護(hù)服務(wù)中'Add Word'函數(shù)的代碼訪問安全

      1.在解決方案管理器選擇項(xiàng)目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;

      }

      現(xiàn)在該方法只可以被角色Grand PoohBah所執(zhí)行。注意要修改的方法在Dictionary.cs中而不是DictionaryService.cs

      2.選擇Debug | Start Without Debugging菜單命令運(yùn)行應(yīng)用程序。在Word to check文本框中輸入數(shù)字并單擊Add Word按鈕。這將會(huì)引發(fā)服務(wù)的AddWord方法拋出一個(gè)SecurityException異常信息,在事件查看器中可以看到。

      這里SecurityException信息從服務(wù)端傳到了客戶端,其中包含的信息將會(huì)有助于攻擊者來攻破我們的系統(tǒng)安全。所以應(yīng)該是在服務(wù)端記錄異常信息,而只發(fā)送很少的信息到客戶端。

      3.關(guān)閉應(yīng)用程序。

       

      第三步 配置應(yīng)用程序包裝SecurityExceptions

      1.在解決方案管理器中選中App.config文件,在View菜單或者在右鍵菜單中選擇Open With…,將打開OpenWith對(duì)話框,選中Enterprise Library Configuration并單擊OK按鈕。

      App.config已經(jīng)包含了一個(gè)空的策略Service Policy,默認(rèn)的,如果一個(gè)策略是空的,異常信息將會(huì)從Catch塊中重新拋出,事實(shí)上該策略并沒有做任何事情。

      2.選中Service Policy節(jié)點(diǎn),選擇Action | New | Exception Type菜單命令。在彈出的對(duì)話框中選擇System.Security.SecurityException,并單擊OK按鈕。

      3.選中Service Policy | SecurityException節(jié)點(diǎn),并設(shè)置如下屬性。

      PostHandlingAction = ThrowNewException

      4.添加新的Logging Handler,選中Service Policy | SecurityException節(jié)點(diǎn),并選擇Action | New | Logging Handler菜單命令,設(shè)置如下屬性。

      FormatterType = TextExceptionFormatter,

      LogCategory = General

      Title = Security Exception in Service Layer

      5.添加新的Replace Handler,選中Service Policy | SecurityException節(jié)點(diǎn),選擇Action | New | Replace Handler菜單命令,并設(shè)置如下屬性。

      ExceptionMessage = Unauthorized Access

      ReplaceExceptionType = System.Security.SecurityException (from mscorlib)

       

      第四步 發(fā)生安全異常時(shí)退出應(yīng)用程序

      1.選中UI Policy節(jié)點(diǎn),選擇Action | New | Exception Type菜單命令,選擇System.Security.SecurityException類型并單擊OK按鈕,設(shè)置如下屬性。

      PostHandlingAction = NotifyRethrow

      處理行為NotifyRethrow將引發(fā)Application.ThreadException重新拋出異常,重新拋出的異常將會(huì)為一個(gè)未處理異常unhandled exception

      2.為SecurityExceptionUI Policy策略下面添加新的Logging Handler,選擇Action | New | Logging Handler菜單命令,設(shè)置如下屬性。

      FormatterType = TextExceptionFormatter,

      LogCategory = General

      Title = Security Exception in UI Layer

      3.保存應(yīng)用程序配置并關(guān)閉Enterprise Library Configuration工具。

       

      第五步 測(cè)試包裝處理

      選擇Debug | Start Without Debugging運(yùn)行應(yīng)用程序,在Word to check文本框中輸入數(shù)字并單擊Add Word按鈕。如果單擊Continue將會(huì)出現(xiàn)“Unhandled exception”異常信息,這時(shí)不會(huì)再出現(xiàn)安全異常信息,可以打開事件查看器查看相關(guān)的日志記錄情況。

      在這里事件日志將會(huì)記錄三次異常,第一次是由服務(wù)層引發(fā)的Service Policy所記錄的異常,這是記錄在服務(wù)端的;第二次是Application ThreadException引發(fā)的UI Policy所記錄的異常,它是記錄在客戶端,由于這里服務(wù)端和客戶端使用的是同一個(gè)機(jī)器;第三次是AppDomain UnhandledException引發(fā)的Unhandled Policy記錄的異常。

       

      注意根據(jù)Hands On Lab給出的時(shí)間建議,做完以上兩個(gè)練習(xí)的時(shí)間應(yīng)該為30分鐘。

       

      更多Enterprise Library的文章請(qǐng)參考《Enterprise Library系列文章

      posted @ 2006-10-07 11:39  TerryLee  閱讀(6314)  評(píng)論(8)    收藏  舉報(bào)
      主站蜘蛛池模板: 精品久久久久久无码免费| 中文字幕国产精品第一页| 亚洲第一视频区| 一区二区三区鲁丝不卡| 午夜亚洲www湿好爽| 青草热在线观看精品视频| 亚洲综合精品第一页| 国产一区精品综亚洲av| 怡春院久久国语视频免费| 亚洲国产成人精品区综合| 孕交videos小孕妇xx| 国产乱色国产精品免费视频 | 祁连县| 看免费的无码区特aa毛片| 国产一区二区三区精品综合| 日99久9在线 | 免费| 久久亚洲精品人成综合网| 天堂av成人网在线观看| 亚洲国产99精品国自产拍| 人妻日韩精品中文字幕| 久久久久成人精品无码中文字幕| 国语自产精品视频在线看| 国产无遮挡又黄又爽免费网站| 亚洲av综合色一区二区| 国产精品 自在自线| 最新国产精品精品视频| 精品国产精品国产偷麻豆| 一本之道高清乱码少妇 | 久久精品国产99国产精品严洲 | 美女爽到高潮嗷嗷嗷叫免费网站| 国产美女自卫慰黄网站| 人人妻人人做人人爽夜欢视频| 国产成人一区二区不卡| 亚洲鸥美日韩精品久久| 五月天久久综合国产一区二区 | 国产极品粉嫩尤物一区二区 | 情欲少妇人妻100篇| 日韩一区二区三区女优丝袜| 另类 亚洲 图片 激情 欧美| 亚洲av永久无码精品漫画| 国产一精品一av一免费|