NegotiateStream secureChannel = new NegotiateStream.networkStream);
secureChannel.ClientAuthenticate(
CredentialCache.DefaultNetworkCredentials,
"SSPISample/TargetMachine:4242", ProtectionLevel.EncryptAndSign,
TokenImpersonationLevel.Impersonation);
完成這些后,您可以像使用一般的 NetworkStream 一樣來使用 secureChannel,但通過 secureChannel 的任何數據都將通過消息身份驗證代碼 (MAC) 得到完整保護,并進行加密。您在服務器端還需要 NegotiateStream 的實例以便解密傳入的消息,當然,該服務器可以通過 RemoteIdentity 屬性獲得表示其客戶端的 WindowsIdentity。這樣服務器就可以模擬或執行基于角色的訪問檢查。
SslStream 看起來很類似,但是毫無疑問,在身份驗證過程中要使用與 Kerberos 票證相對的 X.509 證書。它允許客戶端檢查服務器證書吊銷并為相互進行身份驗證提供客戶端證書。同樣,一旦完成身份驗證握手,您就可以在通道中傳輸數據,并可以放心,數據將受到完整性保護并進行加密。
返回頁首
System.Runtime.Remoting
另一個令人興奮的發展是 TCP 信道現在支持安全性。這是使用我前面講過的 NegotiateStream 類內置到信道中的,它可以通過指定客戶端和服務器遠程配置文件中的一些新屬性而激活的。我在本專欄中不再深入探討這個主題,但是我的書中有一章講述了這個問題,您可以在 The .NET Developer’s Guide to Windows Security 處在線閱讀。
返回頁首
System.Security.Cryptography
DPAPI 現在是 .NET Framework 中的一流成員,兩個 .NETclasses、ProtectedData 和 ProtectedMemory 使其使用非常簡單:
private static byte[] Decrypt(byte[] ciphertext) {
文章來源于領測軟件測試網 http://www.kjueaiud.com/