Exemplo n.º 1
0
 private void UpdateIntegratedMetabase(ADOwaVirtualDirectory dataObject)
 {
     if (Datacenter.IsMultiTenancyEnabled())
     {
         base.WriteError(new TaskException(Strings.IntegratedVDirNotSupported), ErrorCategory.InvalidOperation, null);
         return;
     }
     try
     {
         using (DirectoryEntry directoryEntry = IisUtility.FindWebDirObject(dataObject.MetabasePath, "Integrated"))
         {
             bool flag = false;
             if (dataObject.IntegratedFeaturesEnabled != null && dataObject.IntegratedFeaturesEnabled != null)
             {
                 flag = dataObject.IntegratedFeaturesEnabled.Value;
             }
             if (flag)
             {
                 IisUtility.SetAuthenticationMethod(directoryEntry, MetabasePropertyTypes.AuthFlags.Ntlm, true);
             }
             else
             {
                 IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.None, true);
                 this.WriteWarning(Strings.IntegratedVDirDisabledWarning);
             }
             directoryEntry.CommitChanges();
         }
     }
     catch (WebObjectNotFoundException)
     {
         base.WriteError(new TaskException(Strings.IntegratedVDirNotFound), ErrorCategory.InvalidOperation, null);
     }
 }
Exemplo n.º 2
0
 private void UpdateCalendarMetabase(ADOwaVirtualDirectory dataObject)
 {
     try
     {
         using (DirectoryEntry directoryEntry = IisUtility.FindWebDirObject(dataObject.MetabasePath, "Calendar"))
         {
             if (dataObject.AnonymousFeaturesEnabled == true)
             {
                 IisUtility.SetAuthenticationMethod(directoryEntry, MetabasePropertyTypes.AuthFlags.Anonymous, true);
             }
             else
             {
                 IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.None, true);
             }
             directoryEntry.CommitChanges();
         }
         if (dataObject.AnonymousFeaturesEnabled == false)
         {
             this.WriteWarning(Strings.CalendarVDirDisabledWarning);
         }
     }
     catch (WebObjectNotFoundException)
     {
         base.WriteError(new TaskException(Strings.CalendarVDirNotFound), ErrorCategory.InvalidOperation, null);
     }
 }
 internal static void UpdateMetabase(ExchangeWebAppVirtualDirectory webAppVirtualDirectory, string metabasePath, bool enableAnonymous)
 {
     try
     {
         DirectoryEntry directoryEntry2;
         DirectoryEntry directoryEntry = directoryEntry2 = IisUtility.CreateIISDirectoryEntry(webAppVirtualDirectory.MetabasePath);
         try
         {
             ArrayList arrayList = new ArrayList();
             if (webAppVirtualDirectory.DefaultDomain.Length > 0)
             {
                 arrayList.Add(new MetabaseProperty("DefaultLogonDomain", webAppVirtualDirectory.DefaultDomain, true));
             }
             else if (webAppVirtualDirectory.DefaultDomain == "")
             {
                 directoryEntry.Properties["DefaultLogonDomain"].Clear();
             }
             IisUtility.SetProperties(directoryEntry, arrayList);
             directoryEntry.CommitChanges();
             IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.None, true);
             IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.Basic, webAppVirtualDirectory.BasicAuthentication);
             IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.Digest, webAppVirtualDirectory.DigestAuthentication);
             IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.WindowsIntegrated, webAppVirtualDirectory.WindowsAuthentication);
             IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.LiveIdFba, webAppVirtualDirectory.LiveIdAuthentication);
             if (webAppVirtualDirectory.FormsAuthentication)
             {
                 OwaIsapiFilter.EnableFba(directoryEntry);
             }
             else
             {
                 OwaIsapiFilter.DisableFba(directoryEntry);
             }
             IisUtility.SetAuthenticationMethod(directoryEntry, MetabasePropertyTypes.AuthFlags.Anonymous, enableAnonymous);
             directoryEntry.CommitChanges();
         }
         finally
         {
             if (directoryEntry2 != null)
             {
                 ((IDisposable)directoryEntry2).Dispose();
             }
         }
         GzipLevel gzipLevel = webAppVirtualDirectory.GzipLevel;
         string    site      = IisUtility.WebSiteFromMetabasePath(webAppVirtualDirectory.MetabasePath);
         Gzip.SetIisGzipLevel(site, GzipLevel.High);
         Gzip.SetVirtualDirectoryGzipLevel(webAppVirtualDirectory.MetabasePath, gzipLevel);
     }
     catch (IISGeneralCOMException ex)
     {
         if (ex.Code == -2147023174)
         {
             throw new IISNotReachableException(IisUtility.GetHostName(webAppVirtualDirectory.MetabasePath), ex.Message);
         }
         throw;
     }
 }
 private static void UpdateSubDirectory(ADMobileVirtualDirectory dataObject, string vdirPath, Task task)
 {
     if (IisUtility.Exists(vdirPath))
     {
         using (DirectoryEntry directoryEntry = IisUtility.CreateIISDirectoryEntry(vdirPath))
         {
             IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.None, false);
             IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.WindowsIntegrated, true);
             IisUtility.SetProperty(directoryEntry, "AccessFlags", MetabasePropertyTypes.AccessFlags.Script, true);
             directoryEntry.CommitChanges();
         }
     }
     if (dataObject.ProxyVirtualDirectoryObject != null)
     {
         MobileSyncVirtualDirectoryHelper.CopyProxyExtendedParameters(dataObject);
         ExtendedProtection.CommitToMetabase(dataObject.ProxyVirtualDirectoryObject, task);
     }
 }
        public static void SetToMetabase(ADMobileVirtualDirectory adObject, Task task)
        {
            string metabasePath = adObject.MetabasePath;

            using (DirectoryEntry directoryEntry = IisUtility.CreateIISDirectoryEntry(metabasePath))
            {
                ArrayList arrayList = new ArrayList();
                int?      num       = (int?)directoryEntry.Properties["AccessSSLFlags"].Value;
                if (num == null)
                {
                    num = new int?(0);
                }
                if (adObject.ClientCertAuth == ClientCertAuthTypes.Ignore)
                {
                    int num2 = 96;
                    num &= ~num2;
                }
                else if (adObject.ClientCertAuth == ClientCertAuthTypes.Required)
                {
                    num |= 96;
                }
                else if (adObject.ClientCertAuth == ClientCertAuthTypes.Accepted)
                {
                    num = ((num & -65) | 32);
                }
                else
                {
                    int num3 = 96;
                    num &= ~num3;
                }
                MetabaseProperty value = new MetabaseProperty("AccessSSLFlags", num);
                arrayList.Add(value);
                IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.Basic, adObject.BasicAuthEnabled);
                IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.WindowsIntegrated, adObject.WindowsAuthEnabled);
                MetabaseProperty value2 = new MetabaseProperty("DoDynamicCompression", adObject.CompressionEnabled);
                arrayList.Add(value2);
                IisUtility.SetProperties(directoryEntry, arrayList);
                directoryEntry.CommitChanges();
                string vdirPath = string.Format("{0}/{1}", adObject.MetabasePath, "Proxy");
                MobileSyncVirtualDirectoryHelper.UpdateSubDirectory(adObject, vdirPath, task);
                IisUtility.CommitMetabaseChanges((adObject.Server == null) ? null : adObject.Server.ToString());
            }
        }
Exemplo n.º 6
0
 internal static void UpdateMetabase(ADOabVirtualDirectory virtualDirectory, Task.TaskErrorLoggingDelegate handler)
 {
     try
     {
         DirectoryEntry directoryEntry2;
         DirectoryEntry directoryEntry = directoryEntry2 = IisUtility.CreateIISDirectoryEntry(virtualDirectory.MetabasePath);
         try
         {
             ArrayList arrayList = new ArrayList();
             int       num       = (int)(IisUtility.GetIisPropertyValue("AccessSSLFlags", IisUtility.GetProperties(directoryEntry)) ?? 0);
             if (virtualDirectory.RequireSSL)
             {
                 num |= 8;
             }
             else
             {
                 num &= -9;
                 num &= -257;
                 num &= -65;
             }
             arrayList.Add(new MetabaseProperty("AccessSSLFlags", num, true));
             IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.Basic, virtualDirectory.BasicAuthentication);
             IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.WindowsIntegrated, virtualDirectory.WindowsAuthentication);
             IisUtility.SetProperties(directoryEntry, arrayList);
             directoryEntry.CommitChanges();
             IisUtility.CommitMetabaseChanges((virtualDirectory.Server == null) ? null : virtualDirectory.Server.ToString());
         }
         finally
         {
             if (directoryEntry2 != null)
             {
                 ((IDisposable)directoryEntry2).Dispose();
             }
         }
     }
     catch (COMException exception)
     {
         handler(exception, ErrorCategory.InvalidOperation, virtualDirectory.Identity);
     }
 }
Exemplo n.º 7
0
 private void UpdateOmaMetabase(ADOwaVirtualDirectory dataObject)
 {
     try
     {
         using (DirectoryEntry directoryEntry = IisUtility.FindWebDirObject(dataObject.MetabasePath, "oma"))
         {
             if (dataObject.LiveIdAuthentication)
             {
                 IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.Basic, false);
             }
             else
             {
                 IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.Basic, true);
             }
             directoryEntry.CommitChanges();
         }
     }
     catch (WebObjectNotFoundException)
     {
         base.WriteError(new TaskException(Strings.OmaVDirNotFound), ErrorCategory.InvalidOperation, null);
     }
 }