internal ProxyAuthenticator GetProxyAuthenticatorForAutoDiscover(Uri uri, SerializedSecurityContext serializedSecurityContext, string messageId) { if (this.AccessMethod == AvailabilityAccessMethod.OrgWideFBBasic && this.Credentials != null) { return(ProxyAuthenticator.Create(new CredentialCache { { uri, "Basic", this.Credentials } }, serializedSecurityContext, messageId)); } return(ProxyAuthenticator.Create(this.Credentials, serializedSecurityContext, messageId)); }
private AutoDiscoverResult GetResult(RecipientData recipientData, WebServiceUri webServiceUri) { if (!base.Application.IsVersionSupported(webServiceUri.ServerVersion)) { AutoDiscoverQuery.AutoDiscoverTracer.TraceError <object, int, Type>((long)this.GetHashCode(), "{0}: Remote server version {1} is considered a legacy server by {2} application.", TraceContext.Get(), webServiceUri.ServerVersion, base.Application.GetType()); return(new AutoDiscoverResult(base.Application.CreateExceptionForUnsupportedVersion(recipientData, webServiceUri.ServerVersion))); } AutoDiscoverQuery.AutoDiscoverTracer.TraceDebug <object, Uri, EmailAddress>((long)this.GetHashCode(), "{0}: Found availability service {1} that can fill request for mailbox {2}", TraceContext.Get(), webServiceUri.Uri, (recipientData != null) ? recipientData.EmailAddress : null); SerializedSecurityContext serializedSecurityContext = null; InternalClientContext internalClientContext = base.ClientContext as InternalClientContext; if (this.targetForestConfiguration.IsPerUserAuthorizationSupported && internalClientContext != null) { serializedSecurityContext = internalClientContext.SerializedSecurityContext; } ProxyAuthenticator proxyAuthenticatorForAutoDiscover = this.targetForestConfiguration.GetProxyAuthenticatorForAutoDiscover(webServiceUri.Uri, serializedSecurityContext, base.ClientContext.MessageId); return(new AutoDiscoverResult(webServiceUri, proxyAuthenticatorForAutoDiscover)); }
public static ProxyAuthenticator Create(CredentialCache cache, SerializedSecurityContext serializedContext, string messageId) { SoapHttpClientAuthenticator soapHttpClientAuthenticator; if (cache == null) { ProxyAuthenticator.SecurityTracer.TraceDebug(0L, "{0}: creating ProxyAuthenticator for network service", new object[] { TraceContext.Get() }); soapHttpClientAuthenticator = SoapHttpClientAuthenticator.CreateNetworkService(); } else { ProxyAuthenticator.SecurityTracer.TraceDebug <object, CredentialCache>(0L, "{0}: creating ProxyAuthenticator for credential cache: {1}", TraceContext.Get(), cache); soapHttpClientAuthenticator = SoapHttpClientAuthenticator.Create(cache); } if (serializedContext != null) { soapHttpClientAuthenticator.AdditionalSoapHeaders.Add(serializedContext); } ProxyAuthenticator.SetMessageId(soapHttpClientAuthenticator, messageId); return(new ProxyAuthenticator(soapHttpClientAuthenticator, AuthenticatorType.NetworkCredentials)); }