程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Enterprise Library Step By Step系列(五) 安全應用程序塊 - 入門篇

Enterprise Library Step By Step系列(五) 安全應用程序塊 - 入門篇

編輯:關於.NET

一.安全應用程序塊概述:

安全應用程序塊通過一個或多個安全機制,幫助開發人員在應用程序中實現通用的安全相關任務。

需要提高擴展性,以便在不改變應用程序代碼的情況下更改認證或授權方式。

提供了以下幾個方面的功能:

1.認證

2.授權

3.角色管理

4.Profile管理

二.幾個重要的概念:

1.Credential(令牌)

2.Identity(身份)

3.Principal(主體特征)

三.使用三部曲:

在進行使用前請確保項目中有App.config或Web.config文件,並且需要數據庫中有相關的表和存儲過程,具體可參見數據庫EntLibQuickStarts(Enterprise Library的示例庫)。

1.定義配置文件:

(1)運行Enterprise Library Configuration 配置工具,打開項目中的配置文件;

(2)右擊Application,選擇New | Security Application Block,創建一個安全應用程序塊;

(3)在Security Application Block | Authentication 節點上右擊,選擇 New | Database Authentication Provider,創建一個數據庫認證Provider;

(4)根據在數據訪問應用程序塊中所講的,設置數據庫的連接字符串;

(5)右擊Cryptography Application Block | Hash Providers,選擇New | Hash Algorithm Provider,創建一個加密Provider,並設置SaltEnabled為True;

(6)選擇Security Application Block | Authentication | Database Provider,設置 Database 屬性為 Database Instance, 並且設置 HashProvider 屬性為SHA1Managed;

(7)選擇Security Application Block,設置它的DefaultAuthenticationInstance為Database Provider;

(8)選擇File | Save All保存全部。

至此,關於認證部分的配置已經做完。僅僅有這些還不夠,我們還要進行設置角色。

(9)選擇Security Application Block,右擊Roles,選擇New | Role Database Provider創建一個角色的數據庫Provider;

(10)設置Database屬性為Database Instance;

(11)選擇Security Application Block節點,設置DefaultRolesInstance,為RolesDatabase Provider;

(12)保存全部File | Save All。

至此,所有的配置文件的工作已經做完。最後別忘了,做拷貝目錄

1 copy "$(ProjectDir)\*.config" "$(TargetDir)"

2.創建Security Provider實例:

1IAuthenticationProvider authprovider;

2      authprovider = AuthenticationFactory.GetAuthenticationProvider();

3.執行Security Provider命令:


1 public static bool Authenticate(string username, string password)
2    {
3      bool authenticated = false;
4
5
6      NamePasswordCredential credentials;
7      credentials = new NamePasswordCredential(username, password);
8
9      IAuthenticationProvider authprovider;
10      authprovider = AuthenticationFactory.GetAuthenticationProvider();
11
12      IIdentity identity;
13      authenticated = authprovider.Authenticate(credentials, out identity);
14
15      if (!authenticated)
16      {
17        throw new SecurityException("Invalid username or password.");
18      }
19      
20
21
22      IRolesProvider rolesprovider;
23      rolesprovider = RolesFactory.GetRolesProvider();
24
25      IPrincipal principal;
26      principal = rolesprovider.GetRoles(identity);
27
28      // Place user's principal on the thread
29      Thread.CurrentPrincipal = principal;
30
31      return authenticated;
32    }

入門篇就到這裡了,安全應用程序塊內容比較多,所以有些步驟裡面我沒有截圖,請大家諒解。在進階篇裡面,我會分別介紹認證,授權(包括授權規則),角色,個性化服務,以及嚴格的帳號管理策略,Security Cache,包括第三方的基於數據庫角色授權的插件等。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved