internal static PolicyConfiguration GetPolicyConfigurationFromAD(IConfigurationSession session, ADObjectId owaMailboxPolicyId) { OwaMailboxPolicy[] array = session.Find <OwaMailboxPolicy>(owaMailboxPolicyId, QueryScope.Base, null, null, 1); OwaMailboxPolicy owaMailboxPolicy = null; if (array != null && array.Length == 1) { owaMailboxPolicy = array[0]; } if (owaMailboxPolicy == null) { ExTraceGlobals.PolicyConfigurationTracer.TraceError <ADObjectId>(0L, LocalizedStrings.GetNonEncoded(246332502), owaMailboxPolicyId); return(null); } PolicyConfiguration policyConfiguration = new PolicyConfiguration(); policyConfiguration.PhoneticSupportEnabled = owaMailboxPolicy.PhoneticSupportEnabled; AttachmentPolicy.Level treatUnknownTypeAs = ConfigurationBase.AttachmentActionToLevel(new AttachmentBlockingActions?(owaMailboxPolicy.ActionForUnknownFileAndMIMETypes)); AttachmentPolicy attachmentPolicy = new AttachmentPolicy(owaMailboxPolicy.BlockedFileTypes.ToArray(), owaMailboxPolicy.BlockedMimeTypes.ToArray(), owaMailboxPolicy.ForceSaveFileTypes.ToArray(), owaMailboxPolicy.ForceSaveMimeTypes.ToArray(), owaMailboxPolicy.AllowedFileTypes.ToArray(), owaMailboxPolicy.AllowedMimeTypes.ToArray(), treatUnknownTypeAs, owaMailboxPolicy.DirectFileAccessOnPublicComputersEnabled, owaMailboxPolicy.DirectFileAccessOnPrivateComputersEnabled, owaMailboxPolicy.ForceWebReadyDocumentViewingFirstOnPublicComputers, owaMailboxPolicy.ForceWebReadyDocumentViewingFirstOnPrivateComputers, owaMailboxPolicy.WebReadyDocumentViewingOnPublicComputersEnabled, owaMailboxPolicy.WebReadyDocumentViewingOnPrivateComputersEnabled, owaMailboxPolicy.WebReadyFileTypes.ToArray(), owaMailboxPolicy.WebReadyMimeTypes.ToArray(), owaMailboxPolicy.WebReadyDocumentViewingSupportedFileTypes.ToArray(), owaMailboxPolicy.WebReadyDocumentViewingSupportedMimeTypes.ToArray(), owaMailboxPolicy.WebReadyDocumentViewingForAllSupportedTypes); policyConfiguration.AttachmentPolicy = attachmentPolicy; policyConfiguration.DefaultClientLanguage = owaMailboxPolicy.DefaultClientLanguage; policyConfiguration.LogonAndErrorLanguage = owaMailboxPolicy.LogonAndErrorLanguage; policyConfiguration.DefaultTheme = owaMailboxPolicy.DefaultTheme; policyConfiguration.SetPhotoURL = owaMailboxPolicy.SetPhotoURL; int segmentationBits = (int)owaMailboxPolicy[OwaMailboxPolicySchema.ADMailboxFolderSet]; int segmentationBits2 = (int)owaMailboxPolicy[OwaMailboxPolicySchema.ADMailboxFolderSet2]; policyConfiguration.SegmentationFlags = Utilities.SetSegmentationFlags(segmentationBits, segmentationBits2); policyConfiguration.OutboundCharset = owaMailboxPolicy.OutboundCharset; policyConfiguration.UseGB18030 = owaMailboxPolicy.UseGB18030; policyConfiguration.UseISO885915 = owaMailboxPolicy.UseISO885915; policyConfiguration.InstantMessagingType = ((owaMailboxPolicy.InstantMessagingType != null) ? owaMailboxPolicy.InstantMessagingType.Value : InstantMessagingTypeOptions.None); return(policyConfiguration); }
// Token: 0x06000818 RID: 2072 RVA: 0x0003BA7C File Offset: 0x00039C7C internal Configuration(IConfigurationSession session, string virtualDirectory, string webSiteName, ADObjectId vDirADObjectId, bool isPhoneticSupportEnabled) { base.PhoneticSupportEnabled = isPhoneticSupportEnabled; if (Globals.IsPreCheckinApp) { this.ExpirationTime = DateTime.UtcNow + Configuration.expirationPeriod; this.LoadPreCheckInVdirConfiguration(); return; } ADOwaVirtualDirectory adowaVirtualDirectory = session.Read <ADOwaVirtualDirectory>(vDirADObjectId); if (adowaVirtualDirectory == null) { string message = string.Format(LocalizedStrings.GetNonEncoded(-1166886287), virtualDirectory, webSiteName); throw new OwaInvalidConfigurationException(message); } this.formsAuthenticationEnabled = (adowaVirtualDirectory.InternalAuthenticationMethods.Contains(AuthenticationMethod.Fba) ? 1 : 0); AttachmentPolicy.Level treatUnknownTypeAs = ConfigurationBase.AttachmentActionToLevel(adowaVirtualDirectory.ActionForUnknownFileAndMIMETypes); AttachmentPolicy attachmentPolicy = new AttachmentPolicy(adowaVirtualDirectory.BlockedFileTypes.ToArray(), adowaVirtualDirectory.BlockedMimeTypes.ToArray(), adowaVirtualDirectory.ForceSaveFileTypes.ToArray(), adowaVirtualDirectory.ForceSaveMimeTypes.ToArray(), adowaVirtualDirectory.AllowedFileTypes.ToArray(), adowaVirtualDirectory.AllowedMimeTypes.ToArray(), treatUnknownTypeAs, adowaVirtualDirectory.DirectFileAccessOnPublicComputersEnabled.Value, adowaVirtualDirectory.DirectFileAccessOnPrivateComputersEnabled.Value, adowaVirtualDirectory.ForceWebReadyDocumentViewingFirstOnPublicComputers.Value, adowaVirtualDirectory.ForceWebReadyDocumentViewingFirstOnPrivateComputers.Value, adowaVirtualDirectory.WebReadyDocumentViewingOnPublicComputersEnabled.Value, adowaVirtualDirectory.WebReadyDocumentViewingOnPrivateComputersEnabled.Value, adowaVirtualDirectory.WebReadyFileTypes.ToArray(), adowaVirtualDirectory.WebReadyMimeTypes.ToArray(), adowaVirtualDirectory.WebReadyDocumentViewingSupportedFileTypes.ToArray(), adowaVirtualDirectory.WebReadyDocumentViewingSupportedMimeTypes.ToArray(), adowaVirtualDirectory.WebReadyDocumentViewingForAllSupportedTypes.Value); base.AttachmentPolicy = attachmentPolicy; base.DefaultClientLanguage = adowaVirtualDirectory.DefaultClientLanguage.Value; this.filterWebBeaconsAndHtmlForms = adowaVirtualDirectory.FilterWebBeaconsAndHtmlForms.Value; base.LogonAndErrorLanguage = adowaVirtualDirectory.LogonAndErrorLanguage; this.logonFormat = adowaVirtualDirectory.LogonFormat; this.defaultDomain = adowaVirtualDirectory.DefaultDomain; this.notificationInterval = (adowaVirtualDirectory.NotificationInterval ?? 120); this.sessionTimeout = (adowaVirtualDirectory.UserContextTimeout ?? 60); this.redirectToOptimalOWAServer = (adowaVirtualDirectory.RedirectToOptimalOWAServer == true); base.DefaultTheme = adowaVirtualDirectory.DefaultTheme; base.SetPhotoURL = adowaVirtualDirectory.SetPhotoURL; this.clientAuthCleanupLevel = adowaVirtualDirectory.ClientAuthCleanupLevel; this.imCertificateThumbprint = adowaVirtualDirectory.InstantMessagingCertificateThumbprint; this.imServerName = adowaVirtualDirectory.InstantMessagingServerName; this.isSMimeEnabledOnCurrentServerr = (adowaVirtualDirectory.SMimeEnabled ?? false); this.documentAccessAllowedServers = adowaVirtualDirectory.RemoteDocumentsAllowedServers.ToArray(); this.documentAccessBlockedServers = adowaVirtualDirectory.RemoteDocumentsBlockedServers.ToArray(); this.documentAccessInternalDomainSuffixList = adowaVirtualDirectory.RemoteDocumentsInternalDomainSuffixList.ToArray(); RemoteDocumentsActions?remoteDocumentsActions = adowaVirtualDirectory.RemoteDocumentsActionForUnknownServers; if (remoteDocumentsActions != null) { if (remoteDocumentsActions == RemoteDocumentsActions.Allow) { this.remoteDocumentsActionForUnknownServers = RemoteDocumentsActions.Allow; } else { this.remoteDocumentsActionForUnknownServers = RemoteDocumentsActions.Block; } } base.InternalAuthenticationMethod = ConfigurationBase.GetAuthenticationMethod(adowaVirtualDirectory[ADVirtualDirectorySchema.InternalAuthenticationMethodFlags]); base.ExternalAuthenticationMethod = ConfigurationBase.GetAuthenticationMethod(adowaVirtualDirectory[ADVirtualDirectorySchema.ExternalAuthenticationMethodFlags]); base.Exchange2003Url = adowaVirtualDirectory.Exchange2003Url; base.LegacyRedirectType = LegacyRedirectTypeOptions.Silent; int segmentationBits = (int)adowaVirtualDirectory[ADOwaVirtualDirectorySchema.ADMailboxFolderSet]; int segmentationBits2 = (int)adowaVirtualDirectory[ADOwaVirtualDirectorySchema.ADMailboxFolderSet2]; base.SegmentationFlags = Utilities.SetSegmentationFlags(segmentationBits, segmentationBits2); if (adowaVirtualDirectory.OutboundCharset != null) { base.OutboundCharset = adowaVirtualDirectory.OutboundCharset.Value; } if (adowaVirtualDirectory.UseGB18030 != null && adowaVirtualDirectory.UseGB18030.Value) { base.UseGB18030 = true; } else { base.UseGB18030 = false; } if (adowaVirtualDirectory.UseISO885915 != null && adowaVirtualDirectory.UseISO885915.Value) { base.UseISO885915 = true; } else { base.UseISO885915 = false; } base.InstantMessagingType = ((adowaVirtualDirectory.InstantMessagingType != null) ? adowaVirtualDirectory.InstantMessagingType.Value : InstantMessagingTypeOptions.None); this.defaultAcceptedDomain = session.GetDefaultAcceptedDomain(); this.publicFoldersEnabledOnThisVdir = (adowaVirtualDirectory.PublicFoldersEnabled ?? false); this.ExpirationTime = DateTime.UtcNow + Configuration.expirationPeriod; OwaDiagnostics.LogEvent(ClientsEventLogConstants.Tuple_ConfigurationSettingsUpdated, string.Empty, new object[] { virtualDirectory, webSiteName }); }