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

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

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

      這個世界的問題在于聰明人充滿疑惑,而傻子們堅信不疑。--羅素




      http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/dnpag2entlib.mspx?mfr=true
      http://msdn2.microsoft.com/en-us/library/aa480465.aspx

      1 簡介
          開發人員經常編寫需要安全功能的應用程序。這些應用程序通常需要執行一系列不同的安全操作,而且它們還經常與不同的基礎安全提供程序(如 Microsoft Active Directory 目錄服務、授權管理器、Active Directory 應用程序模式 (ADAM) 和自定義數據庫等)進行交互。
          安全應用程序塊通過收集開發人員必須執行的許多最常見的安全任務,來簡化開發人員的工作。每個任務都以一致的方式處理,從特定的安全提供程序中抽象出應用程序代碼并使用最佳做法。您甚至可以通過更改配置來更改基礎提供程序,而無需更改基礎應用程序代碼。
          安全應用程序塊提供的代碼提供如下功能:
      (1) 身份驗證
      (2) 授權 
      (3) 角色管理 
      (4) 配置文件管理 
      (5) 緩存主體


      2. 幾個基本概念(Form MSDN):
      (1) Ticket:提供對票證的屬性和值的訪問,這些票證用于Forms身份驗證對用戶進行標識。可以使用FormsIdentity 類的 Ticket 屬性訪問當前經過身份驗證的用戶的 FormsAuthenticationTicket。通過將當前User 的 Identity 屬性強制轉換為類型 FormsIdentity,可以訪問當前 FormsIdentity 對象。
      (2) Token:與當前執行線程關聯的訪問標記的句柄,用于獲取用戶的Windows帳戶標記。通常,通過調用非托管代碼(如調用 Win32 API LogonUser 函數)來檢索該帳戶標記。
      (3) Identity:Identity封裝有關正在驗證的用戶或實體的信息。在最基本的級別上,Identity包含名稱和身份驗證類型。名稱可以是用戶名或 Windows 帳戶名,而身份驗證類型可以是所支持的登錄協議(如 Kerberos V5)或自定義值。.NET Framework 定義了一個 GenericIdentity 對象和一個更專用的 WindowsIdentity 對象;前者可用于大多數自定義登錄方案,而后者可用于在希望應用程序依賴于 Windows 身份驗證的情況中。此外,您還可以定義自己的標識類來封裝自定義用戶信息。
      (4) Principal:Principal表示代碼運行時所在的安全上下文。實現基于角色的安全性的應用程序將基于與主體對象關聯的角色來授予權限。同標識對象類似,.NET Framework 提供 GenericPrincipal 對象和 WindowsPrincipal 對象。您還可以定義自己的自定義主體類。
          IPrincipal 定義一個屬性和一種方法,前者用于訪問關聯的 Identity 對象,而后者用于確定 Principal 對象所標識的用戶是否為給定角色的成員。所有 Principal 類都實現 IPrincipal 接口以及任何必需的附加屬性和方法。
          Principal對象在應用程序域(AppDomain)中綁定到調用上下文(CallContext)對象。默認的調用上下文總是用每個新的AppDomain創建的,因此總是存在可用于接受Principal對象的調用上下文。創建新線程的同時也為該線程創建CallContext對象。Principal 對象引用從創建線程自動復制到新線程的CallContext中。如果運行庫無法確定哪個 Principal 對象屬于線程的創建者,它將遵循Principal和Identity對象創建的默認策略。
          可配置的應用程序域特定策略定義了一些規則,用以決定同新的應用程序域關聯的 Principal 對象類型。在安全策略的允許范圍內,運行庫可創建 Principal 和 Identity 對象來反射同當前執行線程關聯的操作系統標記。默認情況下,運行庫使用 Principal 和 Identity 對象表示未經身份驗證的用戶。運行庫不創建這些默認的 Principal 和 Identity 對象,除非代碼試圖訪問它們。
          創建應用程序域的受信任代碼可設置應用程序域策略,以控制默認 Principal 和 Identity 對象的構造。此應用程序域特定的策略適用于該應用程序域中的所有執行線程。


      3. 使用:
      (0) 使用EntLib配置工具配置App.config/web.config:
          a) 創建Cacheing Application Block(緩存Identity、Principal或Profile時要用到CAB)和Security Application Block;
          b) Security Application Block->Security Cache->New->Caching Store Provider->將CacheManager指定到上面創建的Cacheing Application Block;
          c) Security Application Block->Security Cache->New->RuleProvider。

      (1) SaveIdentity(用戶登錄時,緩存用戶所對應的Identity):

      ISecurityCacheProvider cache = SecurityCacheFactory.GetSecurityCacheProvider("Caching Store Provider");
      IIdentity identity 
      = null;
      if (Membership.ValidateUser("username""password"))//驗證用戶是否合法
      {
          identity 
      = new GenericIdentity("username", Membership.Provider.Name);//為合法用戶創建Identity
      }

      IToken token 
      = null
      if (identity != null)
      {
          token 
      = cache.SaveIdentity(identity); // Cache the identity. 
      }

      //我們也可以調用SavePrincipal或SaveProfile來緩存Pricipal或Profile,這些對象是通過同一個Token進行關聯的。

      (2) 根據Token驗證用戶是否合法:

      ISecurityCacheProvider cache = SecurityCacheFactory.GetSecurityCacheProvider("Caching Store Provider");
      IIdentity savedIdentity 
      = cache.GetIdentity(token);//返回與token關聯的Identity,如果token過期或者不合法,則返回null

      (3) 終止Session:

      ISecurityCacheProvider cache = SecurityCacheFactory.GetSecurityCacheProvider("Caching Store Provider");
      cache.ExpireIdentity(token);

      (4) 檢測用戶是否有權限執行某個操作:

      string[] roles = Roles.GetRolesForUser(userName);
      IPrincipal principal 
      = new GenericPrincipal(new GenericIdentity(userName), roles);
      bool authorized = ruleProvider.Authorize(principal, "Submit Order");

       

      4. Security Application Block的設計:


      posted on 2007-08-16 19:49  Silent Void  閱讀(1185)  評論(1)    收藏  舉報

      主站蜘蛛池模板: 亚洲国产中文在线有精品| 乱人伦人妻中文字幕无码久久网| 日本中文字幕不卡在线一区二区| 欧美老少配性行为| 小婕子伦流澡到高潮h| 国产精品v欧美精品∨日韩| 最新精品国产自偷在自线| 亚洲+成人+国产| 四虎国产精品永久入口| 97视频精品全国免费观看| 免费AV片在线观看网址| 国产精品久久久久久无毒不卡| 成人亚洲欧美一区二区三区| 亚洲熟妇熟女久久精品一区| 韩国一级毛片中文字幕| 亚洲欧洲日韩国内精品| 亚洲一本大道在线| 成人精品天堂一区二区三区| 亚洲二区中文字幕在线| 看亚洲黄色不在线网占| 日韩高清亚洲日韩精品一区二区| 欧美疯狂xxxxxbbbbb| 一区二区三区四区激情视频| 国产精品中文字幕av| 久久香蕉欧美精品| a级免费视频| 日本一码二码三码的区分| 国产二区三区不卡免费| 国产精品高清一区二区三区| 国产午夜福利不卡在线观看| 日本不卡三区| 亚洲日产韩国一二三四区| 韩国精品福利视频一区二区| 性色av无码久久一区二区三区| 国产区成人精品视频| 久久亚洲国产成人精品性色 | 国产人妻人伦精品1国产丝袜| 国产毛片子一区二区三区| 一区二区亚洲精品国产精| 97久久精品亚洲中文字幕无码| 国产精品播放一区二区三区|