//
// BasicHttpBinding.cs
//
+// See BasicHttpBinding_4_5.cs and HttpBindingBase.cs for the .NET 4.5
+// version of this class.
+//
// Author:
// Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2005-2006 Novell, Inc. http://www.novell.com
+// Copyright 2011 Xamarin Inc (http://www.xamarin.com).
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if !NET_4_5 && !MOBILE
using System;
using System.Collections.Generic;
using System.Net;
XmlDictionaryReaderQuotas reader_quotas
= new XmlDictionaryReaderQuotas ();
EnvelopeVersion env_version = EnvelopeVersion.Soap11;
- Encoding text_encoding = new UTF8Encoding ();
+ static readonly Encoding default_text_encoding = new UTF8Encoding ();
+ Encoding text_encoding = default_text_encoding;
TransferMode transfer_mode
= TransferMode.Buffered;
bool use_default_web_proxy = true;
}
#if NET_2_1
- public bool EnableHttpCookieContainer { get; set; }
+ public bool EnableHttpCookieContainer {
+ get; set;
+ }
+#elif NET_4_5
+ [Obsolete ("Use AllowCookies.")]
+ public bool EnableHttpCookieContainer {
+ get { return AllowCookies; }
+ set { AllowCookies = value; }
+ }
#endif
public HostNameComparisonMode HostNameComparisonMode {
get { return env_version; }
}
+ internal static Encoding DefaultTextEncoding {
+ get { return default_text_encoding; }
+ }
+
public Encoding TextEncoding {
get { return text_encoding; }
set { text_encoding = value; }
h.ExtendedProtectionPolicy = Security.Transport.ExtendedProtectionPolicy;
#endif
-#if !NET_2_1
- switch (Security.Mode) {
- case BasicHttpSecurityMode.Transport:
- switch (Security.Transport.ClientCredentialType) {
- case HttpClientCredentialType.Basic:
- h.AuthenticationScheme = AuthenticationSchemes.Basic;
- break;
- case HttpClientCredentialType.Ntlm:
- h.AuthenticationScheme = AuthenticationSchemes.Ntlm;
- break;
- case HttpClientCredentialType.Windows:
- h.AuthenticationScheme = AuthenticationSchemes.Negotiate;
- break;
- case HttpClientCredentialType.Digest:
- h.AuthenticationScheme = AuthenticationSchemes.Digest;
- break;
- case HttpClientCredentialType.Certificate:
- var https = (HttpsTransportBindingElement) h;
- https.RequireClientCertificate = true;
- break;
- }
+#if !NET_2_1 || MOBILE
+ switch (Security.Transport.ClientCredentialType) {
+ case HttpClientCredentialType.Basic:
+ h.AuthenticationScheme = AuthenticationSchemes.Basic;
break;
- case BasicHttpSecurityMode.TransportCredentialOnly:
- switch (Security.Transport.ClientCredentialType) {
- case HttpClientCredentialType.Basic:
- h.AuthenticationScheme = AuthenticationSchemes.Basic;
- break;
- case HttpClientCredentialType.Ntlm:
- h.AuthenticationScheme = AuthenticationSchemes.Ntlm;
- break;
- case HttpClientCredentialType.Windows:
- h.AuthenticationScheme = AuthenticationSchemes.Negotiate;
- break;
- case HttpClientCredentialType.Digest:
- h.AuthenticationScheme = AuthenticationSchemes.Digest;
+ case HttpClientCredentialType.Ntlm:
+ h.AuthenticationScheme = AuthenticationSchemes.Ntlm;
+ break;
+ case HttpClientCredentialType.Windows:
+ h.AuthenticationScheme = AuthenticationSchemes.Negotiate;
+ break;
+ case HttpClientCredentialType.Digest:
+ h.AuthenticationScheme = AuthenticationSchemes.Digest;
+ break;
+ case HttpClientCredentialType.Certificate:
+ switch (Security.Mode) {
+ case BasicHttpSecurityMode.Transport:
+ (h as HttpsTransportBindingElement).RequireClientCertificate = true;
break;
- case HttpClientCredentialType.Certificate:
+ case BasicHttpSecurityMode.TransportCredentialOnly:
throw new InvalidOperationException ("Certificate-based client authentication is not supported by 'TransportCredentialOnly' mode.");
}
break;
}
}
}
+#endif