You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,168 @@
|
||||
//------------------------------------------------------------
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user