[轉貼][WCFSecurity]2.安全引數設定
[原文]http://www.rainsts.net/article.asp?id=473
1. 安全方式
通過設定 Binding 的屬性 Security 來實現。
binding.Security.Mode = SecurityMode.Transport;
binding.Security.Transport.ProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;
2. 訊息保護
通過 ServiceContractAttribute 和 OperationContractAttribute 特性的 ProtectionLevel 引數我們可以設定不同的訊息保護級別。
interface IMyContract
{
…
}
3. 身份驗證
不同的部署環境,會採取不同的選擇。在 Intranet 環境下,我們可能選擇 Windows 整合驗證方式,而在 Internet 環境下通常的方案是採取 X.509 數字證書,當然最最通用最最常見依然是使用者名稱/密碼。
以 Windows 整合驗證為例,客戶端可以通過 ClientBase.ClientCredentials 屬性向伺服器端傳送與其相匹配的身份驗證資訊。預設情況下,客戶端使用當前 Windows 登入賬戶作為身份驗證資訊,我們也可以顯式設定不同的身份資訊。
代理方式:
credentials.Domain = “MyDomain”;
credentials.UserName = “MyUsername”;
credentials.Password = “MyPassword”;
using (MyContractClient client = new MyContractClient())
{
client.ClientCredentials.Windows.ClientCredential = credentials;
client.MyMethod( );
}
工廠方式:
factory.Credentials.Windows.ClientCredential = new NetworkCredential(…);
IMyContract client = factory.CreateChannel( );
using(client as IDisposable)
{
client.MyMethod( );
}
在服務中,我們可以用 ServiceSecurityContext.Current (或者 OperationContext.Current.ServiceSecurityContext) 來獲取相關身份資訊。
Console.WriteLine(ServiceSecurityContext.Current.WindowsIdentity.Name);
我們會在後面的章節詳細講述幾種常見的驗證開發方式。
相關文章
- Oracle初始化引數設定new(轉)Oracle
- oracle中引數session和 processes的設定(轉)OracleSession
- vsftpd設定引數FTP
- RAC 特定引數設定
- 兩個引數設定
- 轉 mysql安全設定MySql
- Window安全設定(轉)
- (轉)redhat下安裝oracle,設定redhat核心引數RedhatOracle
- Metasploit設定LHOST引數技巧
- Metasploit設定VERBOSE引數技巧
- pandas引數設定小技巧
- Metasploit設定HttpTrace引數技巧HTTP
- tomcat vm 引數設定Tomcat
- JVM常見引數設定JVM
- JVM引數設定大氣JVM
- SAP系統引數設定
- SAP 系統引數設定
- ORACLE JOB INTERVAL引數設定Oracle
- chrome啟動引數設定Chrome
- 設定NLS_LANG引數
- Linux上shmmax引數的設定及含義(轉)LinuxHMM
- Swift語言中為外部引數設定預設值可變引數常量引數變數引數輸入輸出引數Swift變數
- Oracle CSS的引數設定 心跳時間設定OracleCSS
- [轉貼]安全程式設計 (24千字)程式設計
- 【SQL 效能優化】引數設定SQL優化
- SAP 系統引數設定(zt)
- DBReplicator設定setpath.bat引數BAT
- gcc的-D和-U引數:宏的設定與取消(轉)GC
- [轉帖]Redis相關的核心引數解釋與設定Redis
- javascript為函式設定預設引數JavaScript函式
- AIX7.1 VMO 引數預設設定AI
- mysql的"雙1設定"-資料安全的關鍵引數(案例分享)MySql
- Oracle9i初始化引數中文說明[轉貼]Oracle
- 2.6.10 設定許可證引數
- curl CURLOPT_WRITEFUNCTION 的引數設定Function
- basler工業相機引數設定
- Azure Blob (三)引數設定說明
- Nginx伺服器常用引數設定Nginx伺服器