Testing QueueUserWorkItem
Thread 2504 is impersonating V-CAMP-XP\alice
Testing Delegate.BeginInvoke
Thread 2516 is impersonating V-CAMP-XP\alice
Testing Native CreateThread
Thread 2520 is not impersonating!
哇!所以運行時現在的確是在線程間自動傳播模擬標記的。如果想更改該行為,您可使用 SecurityContext 類(雖然我并不推薦這樣做)。
注意,并未涉及由非托管 API CreateThread 創建的線程,但期望是這樣,因為是運行時而不是操作系統來進行這項工作。這表明由于線程模型不匹配而對生成線程切換的進程內 COM 組件的調用將和以前一樣仍會撤銷模擬標記,但是對大多應用程序來說,跨線程的標識流動問題已經解決。這是很重要的消息,因為它將給大多數人帶來不足為奇的結果。這個變化既重要又微妙,所以如果您正在應用程序中使用模擬和異步,就要為之做好準備。
返回頁首
System.Security.Principal
雖然它看起來微不足道,但這個模擬安全標識符 (SID) 的新類為廣泛支持 Windows 安全編程接口鋪平了道路。我將花費少得多的時間來編寫托管 C++,從而架起橋梁,這使我成為一名非?鞓返乃逘I者。有三個類可以使之成為可能。前兩個類是表示兩種方式的具體類,通過這兩種方式您可以引用一個安全帳戶(可以是用戶、組或計算機):SecurityIdentifier 表示機器可讀的 SID,而 NTAccount 存儲人工可讀的字符串。第三個類是稱為 IdentityReference 的抽象類,它將這些類綁定在一起。
正常返回一個 SID、SID 集合,或者包含 SID 的數據結構集合的方法,將在其簽名中使用該抽象類。該方法將接受另外的 Type 參數,允許您選擇是否希望該方法返回 SID 或名稱。然后您就可以安全地向下轉換到正確的類型。下面的示例顯示了擁有一個文件的用戶的帳戶名:
void printTheOwnerOfThisFile(string path) {
FileSecurity s = File.GetAccessControl(path);
文章來源于領測軟件測試網 http://www.kjueaiud.com/