<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [WCF安全系列]綁定、安全模式與客戶端憑證類型:WSHttpBinding與WSDualHttpBinding

      上一篇文章中,我們詳細地介紹了BasicHttpBinding具有怎樣的安全模式的支持,已經在各種安全模式下分別可以采用怎樣的客戶端憑證。接下來我們來進一步分析另外三個基于HTTP的綁定,即WSHttpBinding、WS2007HttpBinding和WSDualHttpBinding。考慮到它們之間在安全設置方面的相關性,在這里我們先來介紹WSDualHttpBinding。

      一、WSDualHttpBinding

      我們在前面提到過,WCF所有基于HTTP的綁定的Transport安全模式都是通過TLS/SSL(HTTPS)的方式來實現的。TLS/SSL如果要確保從A到B的安全連接,要求B是一個綁定了數字證書的HTTPS站點。正是由于這樣的原因,Transport安全模式不能應用于基于HTTP的雙向通信,因為服務端對客戶端的安全連接得不到保障。所以WSDualHttpBinding只能提供基于Message安全模式的支持

      這樣的限制直接反映應用編程接口的定義上。我們通過WSDualHttpSecurity進行針對于WSDualHttpBinding的安全設置。WSDualHttpSecurity通過Mode屬性返回采用的安全模式。該屬性類型為WSDualHttpSecurityMode枚舉,定義其中的2兩個枚舉值表示WSDualHttpBinding支持的安全模式:None和Message。這也印證了關于WSDualHttpBinding不能夠提供針對Transport安全的論點。在默認的情況下,WSDualHttpBinding采用Message安全模式。

      正是因為WSDualHttpBinding只提供針對于Message安全模式的支持,所以WSDualHttpSecurity中僅僅定義了Message屬性,而不存在Transport屬性的定義。用于進行Message安全設置的Message屬性返回的是一個MessageSecurityOverHttp類型對象。MessageSecurityOverHttp具有我們熟悉的ClientCredentialType返回客戶端憑證類型,屬性對應的類型為MessageCredentialType枚舉。定義在MessageCredentialType中的五個枚舉值表示支持的五種客戶端憑證類型:None、Windows、UserName、Certificate和IssuedToken。 其中Windows為默認的選項,意味著在默認情況下WSDualHttpBinding以Windows認證的方式實現對客戶端的認證。WSDualHttpBinding安全相關的應用編程接口的定義體現在如下所示的代碼片斷中。

         1: public sealed class WSDualHttpSecurity
         2: {
         3:     //其他成員
         4:     public MessageSecurityOverHttp Message { get; set; }
         5:     public WSDualHttpSecurityMode  Mode {get; set; }
         6: }
         7: public class MessageSecurityOverHttp
         8: {
         9:     //其他成員
        10:     public MessageCredentialType ClientCredentialType { get; set; }
        11: }
        12: public enum MessageCredentialType
        13: {
        14:     None,
        15:     Windows,
        16:     UserName,
        17:     Certificate,
        18:     IssuedToken
        19: }
        20: public enum WSDualHttpSecurityMode
        21: {
        22:     None,
        23:     Message
        24: }

      注:IssuedToken,代表的是一種基于WCS(Windows Card Space)的認證方式,而這又涉及到一個更加寬泛的話題,即安全聯合(Security Federation),本系列并不涉及到此內容。

      二、WSHttpBinding/WS2007HttpBinding

      接下來我們再來討論一下WSHttpBinding和WS2007HttpBinding。WSHttpBinding的Security屬性返回的是一個WSHttpSecurity類型的對象。由于WS2007HttpBinding派生自WSHttpBinding,所以它直接將該屬性繼承下來。WSHttpSecurity的Mode屬性返回一個SecurityMode枚舉。定義在該枚舉中的四個枚舉值表示WSHttpBinding和WS2007HttpBinding支持的4種安全模式:None、Transport、Message和TransportWithMessageCredential,其中Message為默認采用的安全模式。

      和BasicHttpBinding一樣,WSHttpBinding也具有一個Security屬性,不過對應的類型為WSHttpSecurity。WS2007HttpBinding派生自WSHttpBindingWSHttpSecurity,直接繼承了Security屬性。WSHttpSecurity的Mode屬性表示所支持的安全模式,類型為SecurityMode枚舉。SecurityMode的四個枚舉值表示WSHttpBinding支持的四種安全模式,即None、Transport、Message和TransportWithMessageCredential。其中Message為默認值,意味著WSHttpBinding和WS2007HttpBinding在默認的情況下提供基于Message安全模式的支持

      WSHttpSecurity的Transport屬性返回一個HttpTransportSecurity類型的對象,用于進行Transport安全的相關設置。HttpTransportSecurity的ClientCredentialType屬性返回的是上面我們提到過的HttpClientCredentialType枚舉。這意味著WSHttpBinding和WS2007HttpBinding和BasicHttpBinding在Transport模式下具有相同的客戶端憑證類型集。所不同的是,WSHttpBinding和WS2007HttpBinding默認情況下采用Windows憑證

      而WSHttpSecurity的Message屬性返回用于進行Message安全相關設置的NonDualMessageSecurityOverHttp類型是MessageSecurityOverHttp的子類,所以它直接繼承了定義在MessageSecurityOverHttp中的ClientCredentialType屬性。這意味著本節介紹的三種綁定在Message或者Mixed安全模式下具有相同的客戶端憑證類型集,并且默認采用Windows憑證。WSHttpBinding和WS2007HttpBinding安全相關的應用編程接口的定義反映在如下的代碼片斷中。

         1: public class WSHttpBinding : WSHttpBindingBase
         2: {
         3:     //其他成員
         4:     public WSHttpSecurity Security { get; set; }
         5: }
         6: public class WS2007HttpBinding:WSHttpBinding
         7: {
         8:     //省略成員
         9: }
        10: public sealed class WSHttpSecurity
        11: {
        12:     //其他成員
        13:     public SecurityMode                     Mode { get; set; }
        14:     public HttpTransportSecurity           Transport { get; set; }
        15:     public NonDualMessageSecurityOverHttp Message {get; set; }
        16: }
        17: public enum SecurityMode
        18: {
        19:     None,
        20:     Transport,
        21:     Message,
        22:     TransportWithMessageCredential
        23: }
        24: public sealed class HttpTransportSecurity
        25: {
        26:     //其他成員
        27:     public HttpClientCredentialType ClientCredentialType { get; set; }
        28: }
        29: public sealed class NonDualMessageSecurityOverHttp : MessageSecurityOverHttp
        30: {
        31:     //省略成員
        32: }

      WSHttpBinding、WS2007HttpBinding和WSDualHttpBinding采用和BasicHttpBinding一樣的編程方式和配置結構,所以在這里就對在對此進行重復介紹了。

      posted @ 2011-05-26 20:24  Artech  閱讀(9950)  評論(21)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产一区二区三区久| 中文字幕人妻无码一夲道| 人妻精品动漫H无码中字| 亚洲天天堂天堂激情性色| 潮喷无码正在播放| 色老99久久精品偷偷鲁| 亚洲色欲久久久久综合网| 日韩人妖精品一区二区av| 日日噜噜噜夜夜爽爽狠狠视频 | A毛片毛片看免费| 男女性高爱潮免费网站| 成人毛片100免费观看| 26uuu另类亚洲欧美日本| 欧美巨大巨粗黑人性aaaaaa| 日韩精品一区二区三区激| 麻豆国产成人AV在线播放| 无限看片在线版免费视频大全| 丝袜美腿亚洲综合第一页| 日本亚洲一区二区精品| 国产综合色在线精品| 国产精品无码一区二区在线观一 | 日韩有码中文字幕国产| 亚洲无码a∨在线视频| 汾阳市| 国产蜜臀在线一区二区三区| 亚洲欧美综合中文| 波多野结衣久久一区二区| 齐齐哈尔市| 中文字幕一区二区人妻电影| 亚洲国产精品久久久天堂麻豆宅男| 久久无码中文字幕免费影院蜜桃| 日韩欧美亚洲综合久久| 亚洲欧洲日产国码久在线| 9久久伊人精品综合| 一区二区三区四区黄色片| 国产精品人成视频免费播放| 狠狠躁夜夜躁人人爽天天古典 | 人人爽人人爽人人片a免费| 亚洲制服无码一区二区三区| 性xxxx搡xxxxx搡欧美| 国产女同一区二区在线|