Ejemplo n.º 1
0
        private void SaveVirtualDir()
        {
            if (!Page.IsValid)
            {
                return;
            }

            // load original web site item
            SharedSSLFolder vdir = ES.Services.WebServers.GetSharedSSLFolder(PanelRequest.ItemID);

            // other controls
            webSitesExtensionsControl.SaveWebItem(vdir);
            webSitesHomeFolderControl.SaveWebItem(vdir);
            webSitesMimeTypesControl.SaveWebItem(vdir);
            webSitesCustomHeadersControl.SaveWebItem(vdir);
            webSitesCustomErrorsControl.SaveWebItem(vdir);

            // update web site
            try
            {
                int result = ES.Services.WebServers.UpdateSharedSSLFolder(vdir);
                if (result < 0)
                {
                    ShowResultMessage(result);
                    return;
                }
            }
            catch (Exception ex)
            {
                ShowErrorMessage("WEB_UPDATE_VDIR", ex);
                return;
            }

            RedirectSpaceHomePage();
        }
Ejemplo n.º 2
0
        private void BindVirtualDir()
        {
            SharedSSLFolder vdir = null;

            try
            {
                vdir = ES.Services.WebServers.GetSharedSSLFolder(PanelRequest.ItemID);
            }
            catch (Exception ex)
            {
                ShowErrorMessage("WEB_GET_VDIR", ex);
                return;
            }

            if (vdir == null)
            {
                RedirectSpaceHomePage();
            }

            PackageId = vdir.PackageId;

            // bind site
            string fullName = vdir.Name;

            lnkSiteName.Text        = "https://" + fullName;
            lnkSiteName.NavigateUrl = "https://" + fullName;

            // bind controls
            webSitesHomeFolderControl.BindWebItem(PackageId, vdir);
            webSitesExtensionsControl.BindWebItem(PackageId, vdir);
            webSitesMimeTypesControl.BindWebItem(vdir);
            webSitesCustomHeadersControl.BindWebItem(vdir);
            webSitesCustomErrorsControl.BindWebItem(vdir);

            // bind tabs
            BindTabs();
        }
Ejemplo n.º 3
0
 /// <remarks/>
 public void UpdateSharedSSLFolderAsync(SharedSSLFolder vdir, object userState)
 {
     if ((this.UpdateSharedSSLFolderOperationCompleted == null))
     {
         this.UpdateSharedSSLFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateSharedSSLFolderOperationCompleted);
     }
     this.InvokeAsync("UpdateSharedSSLFolder", new object[] {
                 vdir}, this.UpdateSharedSSLFolderOperationCompleted, userState);
 }
Ejemplo n.º 4
0
 /// <remarks/>
 public void UpdateSharedSSLFolderAsync(SharedSSLFolder vdir)
 {
     this.UpdateSharedSSLFolderAsync(vdir, null);
 }
Ejemplo n.º 5
0
 /// <remarks/>
 public System.IAsyncResult BeginUpdateSharedSSLFolder(SharedSSLFolder vdir, System.AsyncCallback callback, object asyncState)
 {
     return this.BeginInvoke("UpdateSharedSSLFolder", new object[] {
                 vdir}, callback, asyncState);
 }
Ejemplo n.º 6
0
 public int UpdateSharedSSLFolder(SharedSSLFolder vdir)
 {
     object[] results = this.Invoke("UpdateSharedSSLFolder", new object[] {
                 vdir});
     return ((int)(results[0]));
 }
Ejemplo n.º 7
0
        public static int UpdateSharedSSLFolder(SharedSSLFolder vdir)
        {
            // check account
            int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
            if (accountCheck < 0) return accountCheck;

            // load original item
            SharedSSLFolder origVdir = (SharedSSLFolder)PackageController.GetPackageItem(vdir.Id);
            if (origVdir == null)
                return 0;

            // place log record
            TaskManager.StartTask("WEB_SITE", "UPDATE_SSL_FOLDER", origVdir.Name);
            TaskManager.ItemId = vdir.Id;

            try
            {
                int idx = origVdir.Name.LastIndexOf("/");
                string domainName = origVdir.Name.Substring(0, idx);
                string vdirName = origVdir.Name.Substring(idx + 1);

                WebServer web = GetWebServer(origVdir.ServiceId);
                string siteId = web.GetSiteId(domainName);
                if (siteId == null)
                    return 0;

                // normalize path
                vdir.ContentPath = FilesController.GetFullPackagePath(origVdir.PackageId, vdir.ContentPath);
                vdir.Name = vdirName;

                // copy object
                WebVirtualDirectory virtDir = ObjectUtils.ConvertObject<SharedSSLFolder, WebVirtualDirectory>(vdir);

                // update directory
                web.UpdateVirtualDirectory(siteId, virtDir);

                return 0;
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }
Ejemplo n.º 8
0
        public static int AddSharedSSLFolder(int packageId, string sslDomain, int webSiteId, string vdirName, string vdirPath)
        {
            // check account
            int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
            if (accountCheck < 0) return accountCheck;

            // check package
            int packageCheck = SecurityContext.CheckPackage(packageId, DemandPackage.IsActive);
            if (packageCheck < 0) return packageCheck;

            // check quota
            QuotaValueInfo sitesQuota = PackageController.GetPackageQuota(packageId, Quotas.WEB_SHAREDSSL);
            if (sitesQuota.QuotaExhausted)
                return BusinessErrorCodes.ERROR_WEB_SHARED_SSL_QUOTA_LIMIT;

            //get site
            WebSite site = GetWebSite(webSiteId);
            bool updateRequired = (site != null) && (site.Name.Equals(sslDomain, StringComparison.InvariantCulture) != true);

            // place log record
            TaskManager.StartTask("WEB_SITE", "ADD_SSL_FOLDER", sslDomain);
            TaskManager.WriteParameter("Directory name", vdirName);
            TaskManager.WriteParameter("Path", vdirPath);

            try
            {
                // create virtual directory
                SharedSSLFolder dir = new SharedSSLFolder();
                dir.Name = vdirName;
                dir.ContentPath = FilesController.GetFullPackagePath(packageId, vdirPath);

                dir.EnableAnonymousAccess = true;
                dir.EnableWindowsAuthentication = true;
                dir.EnableBasicAuthentication = false;

                //dir.InstalledDotNetFramework = aspNet;

                dir.DefaultDocs = null; // inherit from service
                dir.HttpRedirect = "";
                dir.HttpErrors = null;
                dir.MimeMaps = null;

                // create directory
                int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Web);
                WebServer web = GetWebServer(serviceId);

                // get site id
                string siteId = web.GetSiteId(sslDomain);
                if (siteId == null)
                    return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;

                // check if vdir exists
                if (web.VirtualDirectoryExists(siteId, vdirName))
                    return BusinessErrorCodes.ERROR_VDIR_ALREADY_EXISTS;

                if (updateRequired)
                {
                    dir.ApplicationPool = site.ApplicationPool;
                    dir.AnonymousUsername = site.AnonymousUsername;
                    dir.AnonymousUserPassword = site.AnonymousUserPassword;
                    dir.DedicatedApplicationPool = site.DedicatedApplicationPool;
					dir.AspInstalled = site.AspInstalled;
					dir.AspNetInstalled = site.AspNetInstalled;
					dir.CgiBinInstalled = site.CgiBinInstalled;
                }

                // create vdir
                WebVirtualDirectory virtDir = ObjectUtils.ConvertObject<SharedSSLFolder, WebVirtualDirectory>(dir);
                web.CreateVirtualDirectory(siteId, virtDir);

                //anonymous user and applcation pool
                if (updateRequired)
                {
                    web.UpdateVirtualDirectory(siteId, virtDir);
                }                

                // save item
                dir.Name = sslDomain + "/" + vdirName;
                dir.PackageId = packageId;
                dir.ServiceId = serviceId;
                TaskManager.ItemId = PackageController.AddPackageItem(dir);

                return TaskManager.ItemId;
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }
Ejemplo n.º 9
0
 public int UpdateSharedSSLFolder(SharedSSLFolder vdir)
 {
     return(WebServerController.UpdateSharedSSLFolder(vdir));
 }
Ejemplo n.º 10
0
 public int UpdateSharedSSLFolder(SharedSSLFolder vdir)
 {
     return WebServerController.UpdateSharedSSLFolder(vdir);
 }