国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block

開發(fā)人員經(jīng)常編寫需要安全功能的應(yīng)用程序。這些應(yīng)用程序通常需要執(zhí)行一系列不同的安全操作,而且它們還經(jīng)常與不同的基礎(chǔ)安全提供程序(如 Microsoft Active Directory 目錄服務(wù)、授權(quán)管理器、Active Directory 應(yīng)用程序模式 (ADAM) 和自定義數(shù)據(jù)庫等)進行交互。


安全應(yīng)用程序塊通過收集開發(fā)人員必須執(zhí)行的許多最常見的安全任務(wù),來簡化開發(fā)人員的工作。每個任務(wù)都以一致的方式處理,從特定的安全提供程序中抽象出應(yīng)用程序代碼并使用最佳做法。您甚至可以通過更改配置來更改基礎(chǔ)提供程序,而無需更改基礎(chǔ)應(yīng)用程序代碼。

驗證應(yīng)用程序塊功能框架如下圖所示:

幾個基本概念

(1) Ticket提供對票證的屬性和值的訪問,這些票證用于Forms身份驗證,對用戶進行標(biāo)識??梢允褂?/span>FormsIdentity 類的 Ticket 屬性訪問當(dāng)前經(jīng)過身份驗證的用戶的 FormsAuthenticationTicket。通過將當(dāng)前User Identity 屬性強制轉(zhuǎn)換為類型FormsIdentity,可以訪問當(dāng)前 FormsIdentity 對象。

(2) Token與當(dāng)前執(zhí)行線程關(guān)聯(lián)的訪問標(biāo)記的句柄,用于獲取用戶的Windows帳戶標(biāo)記。通常,通過調(diào)用非托管代碼(如調(diào)用Win32 API LogonUser 函數(shù))來檢索該帳戶標(biāo)記。

(3) IdentityIdentity 封裝有關(guān)正在驗證的用戶或?qū)嶓w的信息。在最基本的級別上,Identity包含名稱和身份驗證類型。名稱可以是用戶名或 Windows 帳戶名,而身份驗證類型可以是所支持的登錄協(xié)議(如 Kerberos V5)或自定義值。.NET Framework 定義了一個 GenericIdentity 對象和一個更專用的WindowsIdentity 對象;前者可用于大多數(shù)自定義登錄方案,而后者可用于在希望應(yīng)用程序依賴于 Windows 身份驗證的情況中。此外,您還可以定義自己的標(biāo)識類來封裝自定義用戶信息。

(4) PrincipalPrincipal 表示代碼運行時所在的安全上下文。實現(xiàn)基于角色的安全性的應(yīng)用程序?qū)⒒谂c主體對象關(guān)聯(lián)的角色來授予權(quán)限。同標(biāo)識對象類似,.NET Framework 提供 GenericPrincipal 對象和 WindowsPrincipal 對象。您還可以定義自己的自定義主體類。

下面介紹如何使用Microsoft Enterprise Library 5.0中的驗證應(yīng)用程序模塊.

1. 運行EntLibConfig.exe,選擇Blocks菜單 ,單擊 Add Database Settings .

2. 點擊Authorization Providers 區(qū)塊右上角的加號按鈕, Add Authorization Providers然后點擊 Add Authorization Rule Provider :


3. Authorition Rule Provider面板上右鍵,點擊Add Authorization Rule,我們將新建的Rule名稱設(shè)置為GetAllCollege,表示只有符合驗證表達(dá)式的用戶或角色才被允許執(zhí)行獲取所以College操作的權(quán)限:

4. 點擊Rule Expression右邊的按鈕,彈出驗證表達(dá)式編輯對話框:


5. Authorition Rule Provider面板上右鍵,點擊Add Authorization Rule,添加一個憑據(jù)緩存:

6. 點擊File菜單,單擊Save,保存為一個App.config文件,可以先保存到桌面,之后要用到它.

7. 創(chuàng)建一個新的控制臺應(yīng)用程序,App.config添加到程序內(nèi),并加入需要的Dll文件,在此我們要導(dǎo)入的是 Microsoft.Practices.EnterpriseLibrary. Security.dll, Microsoft.Practices.EnterpriseLibrary. Security.Cache.CachingStore.dll并添加需要的引用:

8. 測試:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Principal;
using Microsoft.Practices.EnterpriseLibrary.Security;

namespace test
{
class Program
{
staticvoid Main(string[] args)
{
//創(chuàng)建一個新的用戶
GenericIdentity gID =new GenericIdentity("huang");

IAuthorizationProvider ruleProvider
= AuthorizationFactory.GetAuthorizationProvider("Authorization Rule Provider");

//設(shè)置該用戶隸屬于Manage中
IPrincipal principal =new GenericPrincipal(gID, newstring[] { "Manage" });

//驗證
bool authorized = ruleProvider.Authorize(principal, "GetAllCollege");

if (authorized)
{
Console.WriteLine(
"驗證成功!");
//保存用戶至緩存中
ISecurityCacheProvider secCache = SecurityCacheFactory.GetSecurityCacheProvider("Security Cache");

//保存,并獲取一個憑證
IToken token = secCache.SaveIdentity(gID);

//通過憑證獲取緩存中的用戶
IIdentity savedIdentity = secCache.GetIdentity(token);

//打印用戶信息
Console.WriteLine(savedIdentity.Name);
}
else
{
Console.WriteLine(
"登錄失敗!"
);
}
}
}
}

9. 運行結(jié)構(gòu):

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VC分發(fā)包版本問題
處理WCF異常的方式
win7下運行exe失敗 : 應(yīng)用程序無法啟動,因為應(yīng)用程序的并行配置不正確...
richtx32 - richtx32.ocx - DLL文件信息
使用注冊表進行系統(tǒng)設(shè)置
什么是API
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服