Exemple #1
0
        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);
        }
Exemple #2
0
        // 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);
        }
Exemple #3
0
        // 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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        // 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);
        }