| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- //------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------
- namespace System.ServiceModel
- {
- using System.ComponentModel;
- using System.Runtime;
- using System.ServiceModel.Channels;
- using System.ServiceModel.Configuration;
- public sealed class BasicHttpsSecurity
- {
- internal const BasicHttpsSecurityMode DefaultMode = BasicHttpsSecurityMode.Transport;
- BasicHttpSecurity basicHttpSecurity;
- public BasicHttpsSecurity()
- : this(DefaultMode, new HttpTransportSecurity(), new BasicHttpMessageSecurity())
- {
- }
- BasicHttpsSecurity(BasicHttpsSecurityMode mode, HttpTransportSecurity transportSecurity, BasicHttpMessageSecurity messageSecurity)
- {
- if (!BasicHttpsSecurityModeHelper.IsDefined(mode))
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("mode"));
- }
- HttpTransportSecurity httpTransportSecurity = transportSecurity == null ? new HttpTransportSecurity() : transportSecurity;
- BasicHttpMessageSecurity httpMessageSecurity = messageSecurity == null ? new BasicHttpMessageSecurity() : messageSecurity;
- BasicHttpSecurityMode basicHttpSecurityMode = BasicHttpsSecurityModeHelper.ToBasicHttpSecurityMode(mode);
- this.basicHttpSecurity = new BasicHttpSecurity()
- {
- Mode = basicHttpSecurityMode,
- Transport = httpTransportSecurity,
- Message = httpMessageSecurity
- };
- }
- public BasicHttpsSecurityMode Mode
- {
- get
- {
- return BasicHttpsSecurityModeHelper.ToBasicHttpsSecurityMode(this.basicHttpSecurity.Mode);
- }
- set
- {
- if (!BasicHttpsSecurityModeHelper.IsDefined(value))
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value"));
- }
-
- this.basicHttpSecurity.Mode = BasicHttpsSecurityModeHelper.ToBasicHttpSecurityMode(value);
- }
- }
- public HttpTransportSecurity Transport
- {
- get
- {
- return this.basicHttpSecurity.Transport;
- }
- set
- {
- this.basicHttpSecurity.Transport = value;
- }
- }
- public BasicHttpMessageSecurity Message
- {
- get
- {
- return this.basicHttpSecurity.Message;
- }
- set
- {
- this.basicHttpSecurity.Message = value;
- }
- }
- internal BasicHttpSecurity BasicHttpSecurity
- {
- get
- {
- return this.basicHttpSecurity;
- }
- }
- [EditorBrowsable(EditorBrowsableState.Never)]
- public bool ShouldSerializeMessage()
- {
- return this.basicHttpSecurity.ShouldSerializeMessage();
- }
- [EditorBrowsable(EditorBrowsableState.Never)]
- public bool ShouldSerializeTransport()
- {
- return this.basicHttpSecurity.ShouldSerializeTransport();
- }
- internal static BasicHttpSecurity ToBasicHttpSecurity(BasicHttpsSecurity basicHttpsSecurity)
- {
- Fx.Assert(basicHttpsSecurity != null, "Cannot pass in a null value for basicHttpsSecurity");
-
- BasicHttpSecurity basicHttpSecurity = new BasicHttpSecurity()
- {
- Message = basicHttpsSecurity.Message,
- Transport = basicHttpsSecurity.Transport,
- Mode = BasicHttpsSecurityModeHelper.ToBasicHttpSecurityMode(basicHttpsSecurity.Mode)
- };
-
- return basicHttpSecurity;
- }
- internal static BasicHttpsSecurity ToBasicHttpsSecurity(BasicHttpSecurity basicHttpSecurity)
- {
- Fx.Assert(basicHttpSecurity != null, "basicHttpSecurity cannot be null");
-
- BasicHttpsSecurity basicHttpsSecurity = new BasicHttpsSecurity()
- {
- Message = basicHttpSecurity.Message,
- Transport = basicHttpSecurity.Transport,
- Mode = BasicHttpsSecurityModeHelper.ToBasicHttpsSecurityMode(basicHttpSecurity.Mode)
- };
-
- return basicHttpsSecurity;
- }
- internal static void EnableTransportSecurity(HttpsTransportBindingElement https, HttpTransportSecurity transportSecurity)
- {
- BasicHttpSecurity.EnableTransportSecurity(https, transportSecurity);
- }
- internal static bool IsEnabledTransportAuthentication(HttpTransportBindingElement http, HttpTransportSecurity transportSecurity)
- {
- return BasicHttpSecurity.IsEnabledTransportAuthentication(http, transportSecurity);
- }
- internal void EnableTransportSecurity(HttpsTransportBindingElement https)
- {
- this.basicHttpSecurity.EnableTransportSecurity(https);
- }
- internal void EnableTransportAuthentication(HttpTransportBindingElement http)
- {
- this.basicHttpSecurity.EnableTransportAuthentication(http);
- }
- internal void DisableTransportAuthentication(HttpTransportBindingElement http)
- {
- this.basicHttpSecurity.DisableTransportAuthentication(http);
- }
- internal SecurityBindingElement CreateMessageSecurity()
- {
- return this.basicHttpSecurity.CreateMessageSecurity();
- }
- internal bool InternalShouldSerialize()
- {
- // Default Security mode here is different from that of BasicHttpBinding. Therefore, we do not call into basicHttpSecurity here.
- return this.Mode != BasicHttpsSecurity.DefaultMode
- || this.ShouldSerializeMessage()
- || this.ShouldSerializeTransport();
- }
- }
- }
|