internal UserResponse CreateResponseFromQueryResult(IBudget budget) { UserSettingsProvider userSettingsProvider = new UserSettingsProvider(this.Result.Data, this.userResultMapping.Mailbox, this.userResultMapping.CallContext.CallerCapabilities, this.userResultMapping.CallContext.UserAuthType, this.userResultMapping.CallContext.UseClientCertificateAuthentication, this.userResultMapping.CallContext.RequestedVersion, false); UserConfigurationSettings userConfigurationSettings = userSettingsProvider.GetRedirectionOrErrorSettings(); if (userConfigurationSettings == null) { userConfigurationSettings = userSettingsProvider.GetUserSettings(this.userResultMapping.CallContext.RequestedSettings, budget); } UserResponse userResponse; if (userConfigurationSettings.ErrorCode == UserConfigurationSettingsErrorCode.NoError) { userResponse = new UserResponse(); userResponse.ErrorCode = ErrorCode.NoError; userResponse.ErrorMessage = Strings.NoError; userResponse.UserSettingErrors = this.userResultMapping.CallContext.SettingErrors; userResponse.UserSettings = this.RenderUserSettings(userConfigurationSettings); } else { userResponse = ResultBase.GenerateUserResponseError(userConfigurationSettings, this.userResultMapping.CallContext.SettingErrors); } return(userResponse); }
// Token: 0x06000238 RID: 568 RVA: 0x0000DB88 File Offset: 0x0000BD88 private bool VerifyMapiHttpServerVersion(UserConfigurationSettings settings, Version minimumVersion, string logPrefix) { Version version = new Version(settings.Get <string>(UserConfigurationSettingName.MailboxVersion)); bool flag = version >= minimumVersion; string value = string.Format("{0}({1}): Compared (minimum: {2}; target: {3})", new object[] { flag ? "Enabled" : "IncompatibleVersion", logPrefix, minimumVersion.ToString(), version.ToString() }); this.Log(value); return(flag); }
// Token: 0x0600023A RID: 570 RVA: 0x0000DC0C File Offset: 0x0000BE0C public bool TryWriteMapiHttpNodes(UserConfigurationSettings settings, XmlWriter xmlFragment, int clientMapiHttpResponseVersion, ClientAccessModes clientAccessMode) { MapiHttpProtocolUrls mapiHttpProtocolUrls = settings.Get <MapiHttpProtocolUrls>(UserConfigurationSettingName.MapiHttpUrls); bool flag = mapiHttpProtocolUrls != null && mapiHttpProtocolUrls.HasUrls; if (flag) { xmlFragment.WriteStartElement("Protocol", "http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a"); xmlFragment.WriteAttributeString("Type", null, "mapiHttp"); xmlFragment.WriteAttributeString("Version", null, Math.Min(clientMapiHttpResponseVersion, 1).ToString()); this.WriteMapiHttpProtocolUrls(clientAccessMode, MapiHttpProtocolUrls.Protocol.Emsmdb, mapiHttpProtocolUrls, xmlFragment); this.WriteMapiHttpProtocolUrls(clientAccessMode, MapiHttpProtocolUrls.Protocol.Nspi, mapiHttpProtocolUrls, xmlFragment); xmlFragment.WriteEndElement(); return(true); } return(false); }
// Token: 0x06000326 RID: 806 RVA: 0x0001467C File Offset: 0x0001287C protected static UserResponse GenerateUserResponseError(UserConfigurationSettings settings, UserSettingErrorCollection settingErrors) { UserResponse userResponse = new UserResponse(); switch (settings.ErrorCode) { case UserConfigurationSettingsErrorCode.RedirectAddress: userResponse.ErrorCode = ErrorCode.RedirectAddress; userResponse.ErrorMessage = settings.ErrorMessage; RequestDetailsLoggerBase <RequestDetailsLogger> .Current.SetRedirectionType(RedirectionType.EmailAddressRedirect); userResponse.RedirectTarget = settings.RedirectTarget; return(userResponse); case UserConfigurationSettingsErrorCode.RedirectUrl: userResponse.ErrorCode = ErrorCode.RedirectUrl; userResponse.ErrorMessage = settings.ErrorMessage; RequestDetailsLoggerBase <RequestDetailsLogger> .Current.SetRedirectionType(RedirectionType.UrlRedirect); userResponse.RedirectTarget = settings.RedirectTarget; return(userResponse); case UserConfigurationSettingsErrorCode.InvalidUser: userResponse.ErrorCode = ErrorCode.InvalidUser; userResponse.ErrorMessage = settings.ErrorMessage; return(userResponse); case UserConfigurationSettingsErrorCode.InternalServerError: userResponse.ErrorCode = ErrorCode.InternalServerError; userResponse.ErrorMessage = settings.ErrorMessage; return(userResponse); } userResponse.UserSettingErrors = settingErrors; userResponse.ErrorCode = ErrorCode.InvalidRequest; userResponse.ErrorMessage = (string.IsNullOrEmpty(settings.ErrorMessage) ? Strings.InvalidRequest : settings.ErrorMessage); return(userResponse); }
private UserSettingCollection RenderUserSettings(UserConfigurationSettings settings) { UserSettingCollection userSettingCollection = new UserSettingCollection(); foreach (UserConfigurationSettingName userConfigurationSettingName in settings.Keys) { object obj = settings.Get <object>(userConfigurationSettingName); if (obj is string) { userSettingCollection.Add(new StringSetting { Name = userConfigurationSettingName.ToString(), Value = (string)obj }); } else if (obj is bool) { userSettingCollection.Add(new StringSetting { Name = userConfigurationSettingName.ToString(), Value = obj.ToString() }); } else if (obj is OwaUrlCollection) { WebClientUrlCollectionSetting webClientUrlCollectionSetting = new WebClientUrlCollectionSetting(); webClientUrlCollectionSetting.Name = userConfigurationSettingName.ToString(); webClientUrlCollectionSetting.WebClientUrls = new WebClientUrlCollection(); OwaUrlCollection owaUrlCollection = obj as OwaUrlCollection; foreach (OwaUrl owaUrl in owaUrlCollection) { webClientUrlCollectionSetting.WebClientUrls.Add(new WebClientUrl { AuthenticationMethods = owaUrl.AuthenticationMethods, Url = owaUrl.Url }); } userSettingCollection.Add(webClientUrlCollectionSetting); } else if (obj is PopImapSmtpConnectionCollection) { ProtocolConnectionCollectionSetting protocolConnectionCollectionSetting = new ProtocolConnectionCollectionSetting(); protocolConnectionCollectionSetting.Name = userConfigurationSettingName.ToString(); protocolConnectionCollectionSetting.ProtocolConnections = new ProtocolConnectionCollection(); PopImapSmtpConnectionCollection popImapSmtpConnectionCollection = obj as PopImapSmtpConnectionCollection; foreach (PopImapSmtpConnection popImapSmtpConnection in popImapSmtpConnectionCollection) { protocolConnectionCollectionSetting.ProtocolConnections.Add(new ProtocolConnection { EncryptionMethod = popImapSmtpConnection.EncryptionMethod, Hostname = popImapSmtpConnection.Hostname, Port = popImapSmtpConnection.Port }); } userSettingCollection.Add(protocolConnectionCollectionSetting); } else if (obj is AlternateMailboxCollection) { AlternateMailboxCollectionSetting alternateMailboxCollectionSetting = new AlternateMailboxCollectionSetting(); alternateMailboxCollectionSetting.Name = userConfigurationSettingName.ToString(); alternateMailboxCollectionSetting.AlternateMailboxes = new AlternateMailboxCollection(); AlternateMailboxCollection alternateMailboxCollection = obj as AlternateMailboxCollection; foreach (Microsoft.Exchange.Autodiscover.ConfigurationSettings.AlternateMailbox alternateMailbox in alternateMailboxCollection) { alternateMailboxCollectionSetting.AlternateMailboxes.Add(new Microsoft.Exchange.Autodiscover.WCF.AlternateMailbox { Type = alternateMailbox.Type, DisplayName = alternateMailbox.DisplayName, LegacyDN = alternateMailbox.LegacyDN, Server = alternateMailbox.Server, SmtpAddress = alternateMailbox.SmtpAddress, OwnerSmtpAddress = alternateMailbox.OwnerSmtpAddress }); } userSettingCollection.Add(alternateMailboxCollectionSetting); } else if (obj is DocumentSharingLocationCollection) { DocumentSharingLocationCollectionSetting documentSharingLocationCollectionSetting = new DocumentSharingLocationCollectionSetting(); documentSharingLocationCollectionSetting.Name = userConfigurationSettingName.ToString(); documentSharingLocationCollectionSetting.DocumentSharingLocations = new DocumentSharingLocationCollection(); DocumentSharingLocationCollection documentSharingLocationCollection = obj as DocumentSharingLocationCollection; foreach (DocumentSharingLocation documentSharingLocation in documentSharingLocationCollection) { DocumentSharingLocation item = new DocumentSharingLocation(documentSharingLocation.ServiceUrl, documentSharingLocation.LocationUrl, documentSharingLocation.DisplayName, documentSharingLocation.SupportedFileExtensions, documentSharingLocation.ExternalAccessAllowed, documentSharingLocation.AnonymousAccessAllowed, documentSharingLocation.CanModifyPermissions, documentSharingLocation.IsDefault); documentSharingLocationCollectionSetting.DocumentSharingLocations.Add(item); } userSettingCollection.Add(documentSharingLocationCollectionSetting); } else if (!(obj is MapiHttpProtocolUrls)) { } } return(userSettingCollection); }
// Token: 0x06000237 RID: 567 RVA: 0x0000DA54 File Offset: 0x0000BC54 public bool ShouldWriteMapiHttpProtocolNode(UserConfigurationSettings settings, int clientMapiHttpResponseVersion, bool?mapiHttpOverrideRegistryValue, Version minimumMapiHttpAutodiscoverVersion, bool useMapiHttpADSettingFlightEnabled, bool mapiHttpFlightEnabled, bool mapiHttpForOutlook14FlightEnabled, Version callingOutlookVersion) { bool flag = false; bool flag2 = false; if (clientMapiHttpResponseVersion > 0) { if (mapiHttpOverrideRegistryValue != null) { flag = mapiHttpOverrideRegistryValue.Value; if (flag) { flag = this.VerifyMapiHttpServerVersion(settings, minimumMapiHttpAutodiscoverVersion, "MapiHttpRegKeySetting"); } else { this.Log("ForceDisabled(Registry)"); } } else if (useMapiHttpADSettingFlightEnabled) { bool?flag3 = settings.Get <bool?>(UserConfigurationSettingName.MapiHttpEnabledForUser); flag = ((flag3 != null) ? flag3.Value : settings.Get <bool>(UserConfigurationSettingName.MapiHttpEnabled)); if (flag) { flag = this.VerifyMapiHttpServerVersion(settings, MapiHttpProvider.MinimumMapiHttpServerVersion, "MapiHttpADSetting"); } else { this.Log("ForceDisabled(AD)"); } } else if (callingOutlookVersion != null) { if (callingOutlookVersion.Major == 14) { flag = mapiHttpForOutlook14FlightEnabled; this.Log(flag ? "Flighted(Outlook 14)" : "FlightedDisabled(Outlook 14)"); } else if (callingOutlookVersion.Major >= 15) { flag = mapiHttpFlightEnabled; this.Log(flag ? "Flighted" : "FlightedDisabled"); } else { this.Log("VersionTooLow"); } } else { this.Log("ParseFailed"); } if (flag) { MapiHttpProtocolUrls mapiHttpProtocolUrls = settings.Get <MapiHttpProtocolUrls>(UserConfigurationSettingName.MapiHttpUrls); flag2 = (mapiHttpProtocolUrls != null && mapiHttpProtocolUrls.HasUrls); } } else { this.Log("NotRequested"); } return(flag && flag2); }