public void GetCustomErrors(ServerManager srvman, WebVirtualDirectory virtualDir) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var httpErrorsSection = config.GetSection(Constants.HttpErrorsSection); virtualDir.ErrorMode = (HttpErrorsMode)httpErrorsSection.GetAttributeValue("errorMode"); virtualDir.ExistingResponse = (HttpErrorsExistingResponse)httpErrorsSection.GetAttributeValue("existingResponse"); // var errorsCollection = httpErrorsSection.GetCollection(); // var errors = new List<HttpError>(); // foreach (var item in errorsCollection) { var item2Get = GetHttpError(item, virtualDir); // if (item2Get == null) continue; // errors.Add(item2Get); } // virtualDir.HttpErrors = errors.ToArray(); }
public void SaveWebItem(WebVirtualDirectory item) { item.ContentPath = fileLookup.SelectedFile; item.RedirectExactUrl = chkRedirectExactUrl.Checked; item.RedirectDirectoryBelow = chkRedirectDirectoryBelow.Checked; item.RedirectPermanent = chkRedirectPermanent.Checked; item.EnableDirectoryBrowsing = chkDirectoryBrowsing.Checked; item.EnableParentPaths = chkParentPaths.Checked; item.EnableWritePermissions = chkWrite.Checked; item.DedicatedApplicationPool = chkDedicatedPool.Checked; item.EnableAnonymousAccess = chkAuthAnonymous.Checked; item.EnableWindowsAuthentication = chkAuthWindows.Checked; item.EnableBasicAuthentication = chkAuthBasic.Checked; // default documents item.DefaultDocs = String.Join(",", Utils.ParseDelimitedString(txtDefaultDocs.Text, '\n', '\r', ';', ',')); // redirection item.HttpRedirect = rbLocationRedirect.Checked ? txtRedirectUrl.Text : ""; // set app pool item.ApplicationPool = (string)ViewState["ApplicationPool"]; }
public void GetCustomErrors(WebVirtualDirectory virtualDir) { // using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var httpErrorsSection = config.GetSection(Constants.HttpErrorsSection); // var errorsCollection = httpErrorsSection.GetCollection(); // var errors = new List <HttpError>(); // foreach (var item in errorsCollection) { var item2Get = GetHttpError(item, virtualDir); // if (item2Get == null) { continue; } // errors.Add(item2Get); } // virtualDir.HttpErrors = errors.ToArray(); } }
public string GetPhysicalPath(WebVirtualDirectory virtualDir) { using (var srvman = GetServerManager()) { string siteId = (virtualDir.ParentSiteName == null) ? virtualDir.Name : virtualDir.ParentSiteName; // var iisObject = srvman.Sites[siteId]; if (iisObject == null) { return(null); } // var iisAppObject = iisObject.Applications[virtualDir.VirtualPath]; if (iisAppObject == null) { return(null); } // var iisDirObject = iisAppObject.VirtualDirectories["/"]; if (iisDirObject == null) { return(null); } // return(iisDirObject.PhysicalPath); } }
public void GetCustomHttpHeaders(WebVirtualDirectory virtualDir) { using (var srvman = GetServerManager()) { var config = srvman.GetApplicationHostConfiguration(); // var httpProtocolSection = config.GetSection(Constants.HttpProtocolSection, virtualDir.FullQualifiedPath); // if (httpProtocolSection == null) return; // var headersCollection = httpProtocolSection.GetCollection("customHeaders"); // var headers = new List<HttpHeader>(); // foreach (var item in headersCollection) { var item2Get = GetCustomHttpHeader(item); // if (item2Get == null) continue; // headers.Add(item2Get); } // virtualDir.HttpHeaders = headers.ToArray(); } }
private HttpError GetHttpError(ConfigurationElement element, WebVirtualDirectory virtualDir) { if (element == null || virtualDir == null) { return(null); } // skip inherited http errors if (!element.IsLocallyStored) { return(null); } // var error = new HttpError { ErrorCode = Convert.ToString(element.GetAttributeValue(StatusCodeAttribute)), ErrorSubcode = Convert.ToString(element.GetAttributeValue(SubStatusCodeAttribute)), ErrorContent = Convert.ToString(element.GetAttributeValue(PathAttribute)), HandlerType = Enum.GetName(typeof(HttpErrorResponseMode), element.GetAttributeValue(ResponseModeAttribute)) }; // Make error path relative to the virtual directory's root folder if (error.HandlerType.Equals("File") && // 0 is supposed to be File error.ErrorContent.Length > virtualDir.ContentPath.Length) { error.ErrorContent = error.ErrorContent.Substring(virtualDir.ContentPath.Length); } // return(error); }
private void ToggleWmSvcConnectionHint(WebVirtualDirectory item) { bool wmcSvcSiteEnabled = item.GetValue <bool>(WebSite.WmSvcSiteEnabled); // if (wmcSvcSiteEnabled) { // string wmSvcServicePort = item.GetValue <String>(WebSite.WmSvcServicePort); string wmSvcServiceUrl = item.GetValue <String>(WebSite.WmSvcServiceUrl); // if (!String.IsNullOrEmpty(wmSvcServiceUrl)) { if (!String.IsNullOrEmpty(wmSvcServicePort) && !String.Equals(wmSvcServicePort, WebSite.WmSvcDefaultPort)) { lclWmSvcConnectionHint.Text = String.Format( lclWmSvcConnectionHint.Text, String.Format("{0}:{1}", wmSvcServiceUrl, wmSvcServicePort), item.Name); } else { lclWmSvcConnectionHint.Text = String.Format( lclWmSvcConnectionHint.Text, wmSvcServiceUrl, item.Name); } } else { lclWmSvcConnectionHint.Visible = false; } } }
/// <summary> /// Loads available mime maps into supplied virtual iisDirObject description. /// </summary> /// <param name="vdir">Virtual iisDirObject description.</param> public void GetMimeMaps(WebVirtualDirectory virtualDir) { using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.StaticContentSection); // var mappings = new List <MimeMap>(); // foreach (var item in section.GetCollection()) { var item2Get = GetMimeMap(item); // if (item2Get == null) { continue; } // mappings.Add(item2Get); } // virtualDir.MimeMaps = mappings.ToArray(); } }
public void UpdateVirtualDirectory(WebVirtualDirectory virtualDir) { // ensure physical site content path if (String.IsNullOrEmpty(virtualDir.ContentPath)) { throw new Exception("VirtualDirContentPathEmpty"); } // using (var srvman = GetServerManager()) { // Obtain parent web site var webSite = srvman.Sites[virtualDir.ParentSiteName]; // Ensure web site has been found if (webSite == null) { throw new ApplicationException("WebSiteNotFound"); } // var v_dir = webSite.Applications[virtualDir.VirtualPath]; v_dir.ApplicationPoolName = virtualDir.ApplicationPool; v_dir.VirtualDirectories[0].PhysicalPath = virtualDir.ContentPath; // srvman.CommitChanges(); } }
public void GetCustomHttpHeaders(WebVirtualDirectory virtualDir) { using (var srvman = GetServerManager()) { var config = srvman.GetApplicationHostConfiguration(); // var httpProtocolSection = config.GetSection(Constants.HttpProtocolSection, virtualDir.FullQualifiedPath); // if (httpProtocolSection == null) { return; } // var headersCollection = httpProtocolSection.GetCollection("customHeaders"); // var headers = new List <HttpHeader>(); // foreach (var item in headersCollection) { var item2Get = GetCustomHttpHeader(item); // if (item2Get == null) { continue; } // headers.Add(item2Get); } // virtualDir.HttpHeaders = headers.ToArray(); } }
public void GetCustomErrors(WebVirtualDirectory virtualDir) { // using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var httpErrorsSection = config.GetSection(Constants.HttpErrorsSection); // var errorsCollection = httpErrorsSection.GetCollection(); // var errors = new List<HttpError>(); // foreach (var item in errorsCollection) { var item2Get = GetHttpError(item, virtualDir); // if (item2Get == null) continue; // errors.Add(item2Get); } // virtualDir.HttpErrors = errors.ToArray(); } }
private void SaveVirtualDir() { if (!Page.IsValid) { return; } // load original web site item WebVirtualDirectory vdir = ES.Services.WebServers.GetVirtualDirectory(PanelRequest.ItemID, PanelRequest.VirtDir); // other controls //webSitesExtensionsControl.SaveWebItem(vdir); VirtualDirectoryHomeFolderControl.SaveWebItem(vdir); //webSitesMimeTypesControl.SaveWebItem(vdir); //webSitesCustomHeadersControl.SaveWebItem(vdir); //webSitesCustomErrorsControl.SaveWebItem(vdir); // update web site try { int result = ES.Services.WebServers.UpdateVirtualDirectory(PanelRequest.ItemID, vdir); if (result < 0) { ShowResultMessage(result); return; } } catch (Exception ex) { ShowErrorMessage("WEB_UPDATE_VDIR", ex); return; } ReturnBack(); }
public WebVirtualDirectory GetVirtualDirectory(string siteId, string directoryName) { // if (String.IsNullOrEmpty(siteId)) { throw new ArgumentNullException("siteId"); } // if (String.IsNullOrEmpty(directoryName)) { throw new ArgumentNullException("directoryName"); } // if (!SiteExists(siteId)) { return(null); } // using (var srvman = GetServerManager()) { var site = srvman.Sites[siteId]; // var vdir = new WebVirtualDirectory { Name = directoryName, ParentSiteName = siteId }; // We assume that we create only applications. vdir.ApplicationPool = site.Applications[vdir.VirtualPath].ApplicationPoolName; // return(vdir); } }
public WebVirtualDirectory GetVirtualDirectory(string siteId, string directoryName) { // if (String.IsNullOrEmpty(siteId)) { throw new ArgumentNullException("siteId"); } // if (String.IsNullOrEmpty(directoryName)) { throw new ArgumentNullException("directoryName"); } // using (var iisManager = GetServerManager()) { Application iisSiteObject = iisManager.Sites[siteId].Applications["/"]; if (!SiteExists(iisManager, siteId)) { return(null); } var vdir = new WebVirtualDirectory { Name = directoryName, ParentSiteName = siteId }; return(vdir); } }
public void ConfigureConnectAsFeature(WebVirtualDirectory virtualDir) { // read website using (var srvman = GetServerManager()) { var webSite = String.IsNullOrEmpty(virtualDir.ParentSiteName) ? srvman.Sites[virtualDir.Name] : srvman.Sites[virtualDir.ParentSiteName]; // if (webSite != null) { // get root iisAppObject var webApp = webSite.Applications[virtualDir.VirtualPath]; // if (webApp != null) { var vdir = webApp.VirtualDirectories["/"]; // if (vdir != null) { vdir.LogonMethod = AuthenticationLogonMethod.ClearText; // vdir.UserName = virtualDir.AnonymousUsername; vdir.Password = virtualDir.AnonymousUserPassword; // srvman.CommitChanges(); } } } } }
public void DeleteVirtualDirectory(WebVirtualDirectory virtualDir) { using (var iisManager = GetServerManager()) { if (!SiteExists(iisManager, virtualDir.ParentSiteName)) { return; } Site iisSiteRoot = iisManager.Sites[virtualDir.ParentSiteName]; if (iisSiteRoot != null) { Application application = iisSiteRoot.Applications["/"]; if (application != null) { VirtualDirectory directory = application.VirtualDirectories[virtualDir.VirtualPath]; if (directory != null) { // application.VirtualDirectories.Remove(directory); } } } // iisManager.CommitChanges(); } }
public void GetCustomErrors(ServerManager srvman, WebVirtualDirectory virtualDir) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var httpErrorsSection = config.GetSection(Constants.HttpErrorsSection); virtualDir.ErrorMode = (HttpErrorsMode)httpErrorsSection.GetAttributeValue("errorMode"); virtualDir.ExistingResponse = (HttpErrorsExistingResponse)httpErrorsSection.GetAttributeValue("existingResponse"); // var errorsCollection = httpErrorsSection.GetCollection(); // var errors = new List <HttpError>(); // foreach (var item in errorsCollection) { var item2Get = GetHttpError(item, virtualDir); // if (item2Get == null) { continue; } // errors.Add(item2Get); } // virtualDir.HttpErrors = errors.ToArray(); }
internal void RemoveScriptMaps(WebVirtualDirectory virtualDir, IEnumerable <string> extensions, string processor) { if (String.IsNullOrEmpty(processor)) { return; } // if (virtualDir == null) { return; } // using (var srvman = GetServerManager()) { var config = srvman.GetApplicationHostConfiguration(); // var handlersSection = config.GetSection(Constants.HandlersSection, virtualDir.FullQualifiedPath); var handlersCollection = handlersSection.GetCollection(); // foreach (string extension in extensions) { var extParts = extension.Split(','); var path = extParts[0]; var existentHandler = FindHandlerAction(handlersCollection, path, processor); // remove handler if exists if (existentHandler != null) { handlersCollection.Remove(existentHandler); } } // srvman.CommitChanges(); } }
public void SetCustomErrors(WebVirtualDirectory virtualDir) { #region Revert to parent settings (inherited) using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.HttpErrorsSection); // section.RevertToParent(); // srvman.CommitChanges(); } #endregion // Http errors list is either empty or not set so defaults to the parent if (virtualDir.HttpErrors == null || virtualDir.HttpErrors.Length == 0) { return; } #region Put the change in effect using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.HttpErrorsSection); // var errorsCollection = section.GetCollection(); // errorsCollection.Clear(); // foreach (var item in virtualDir.HttpErrors) { int indexOf = FindHttpError(errorsCollection, item); // Just update the element attributes - IIS 7 API will do the rest if (indexOf > -1) { var item2Renew = errorsCollection[indexOf]; // FillConfigurationElementWithData(item2Renew, item, virtualDir); // continue; } // var item2Add = CreateHttpError(errorsCollection, item, virtualDir); // if (item2Add == null) { continue; } // errorsCollection.Add(item2Add); } // srvman.CommitChanges(); } #endregion }
public void BindWebItem(WebVirtualDirectory item) { IIs7 = item.IIs7; // bind data gvErrorPages.DataSource = item.HttpErrors; gvErrorPages.DataBind(); }
public void SaveWebItem(WebVirtualDirectory item) { item.ContentPath = fileLookup.SelectedFile; item.EnableAnonymousAccess = chkAuthAnonymous.Checked; item.EnableWindowsAuthentication = chkAuthWindows.Checked; item.EnableBasicAuthentication = chkAuthBasic.Checked; }
public void GetAuthenticationSettings(ServerManager srvman, WebVirtualDirectory virtualDir) { var config = srvman.GetApplicationHostConfiguration(); // var section = config.GetSection(Constants.BasicAuthenticationSection, virtualDir.FullQualifiedPath); // virtualDir.EnableBasicAuthentication = Convert.ToBoolean(section.GetAttributeValue(EnabledAttribute)); }
public WebVirtualDirectory[] GetZooApplications(ServerManager srvman, string siteId) { if (!SiteExists(srvman, siteId)) { return new WebVirtualDirectory[] { } } ; var vdirs = new List <WebVirtualDirectory>(); var iisObject = srvman.Sites[siteId]; // foreach (var item in iisObject.Applications) { Configuration cfg = item.GetWebConfiguration(); string location = siteId + ConfigurationUtility.GetQualifiedVirtualPath(item.Path); ConfigurationSection section; try { section = cfg.GetSection("system.webServer/heliconZoo", location); } catch (Exception) { // looks like Helicon Zoo is not installed, return empty array return(vdirs.ToArray()); } if (section.GetCollection().Count > 0) { WebVirtualDirectory vdir = new WebVirtualDirectory { Name = ConfigurationUtility.GetNonQualifiedVirtualPath(item.Path), ContentPath = item.VirtualDirectories[0].PhysicalPath }; ConfigurationElement zooAppElement = section.GetCollection()[0]; ConfigurationElementCollection envColl = zooAppElement.GetChildElement("environmentVariables").GetCollection(); foreach (ConfigurationElement env in envColl) { if ((string)env.GetAttributeValue("name") == "CONSOLE_URL") { vdir.ConsoleUrl = ConfigurationUtility.GetQualifiedVirtualPath(item.Path); if (!vdir.ConsoleUrl.EndsWith("/")) { vdir.ConsoleUrl += "/"; } vdir.ConsoleUrl += (string)env.GetAttributeValue("value"); } } vdirs.Add(vdir); } } return(vdirs.ToArray()); }
public void SaveWebItem(WebVirtualDirectory item) { item.AspInstalled = chkAsp.Checked; item.AspNetInstalled = ddlAspNet.SelectedValue; item.PhpInstalled = ddlPhp.SelectedValue; item.PerlInstalled = chkPerl.Checked; item.PythonInstalled = chkPython.Checked; item.CgiBinInstalled = chkCgiBin.Checked; }
public void SetCustomHttpHeaders(WebVirtualDirectory virtualDir) { #region Revert to parent settings (inherited) using (var srvman = GetServerManager()) { var config = srvman.GetApplicationHostConfiguration(); // var section = config.GetSection(Constants.HttpProtocolSection, virtualDir.FullQualifiedPath); // section.RevertToParent(); // srvman.CommitChanges(); } #endregion // Ensure virtual directory has Custom HTTP Headers set if (virtualDir.HttpHeaders == null || virtualDir.HttpHeaders.Length == 0) return; #region Put the change in effect using (var srvman = GetServerManager()) { var config = srvman.GetApplicationHostConfiguration(); // var section = config.GetSection(Constants.HttpProtocolSection, virtualDir.FullQualifiedPath); // var headersCollection = section.GetCollection("customHeaders"); // Clean the collection to avoid duplicates collision on the root and nested levels headersCollection.Clear(); // Iterate over custom http headers are being set foreach (var item in virtualDir.HttpHeaders) { // Trying to find out whether the header is being updated int indexOf = FindCustomHttpHeader(headersCollection, item); // if (indexOf > -1) { // Obtain the custom http header to update var item2Renew = headersCollection[indexOf]; // Apply changes to the element FillConfigurationElementWithData(item2Renew, item); // Loop the next item continue; } // Creating a new custom http header var item2Add = CreateCustomHttpHeader(headersCollection, item); // Checking results of the create operation if (item2Add == null) continue; // Adding the newly created custom http header headersCollection.Add(item2Add); } // Commit changes srvman.CommitChanges(); } #endregion }
/// <summary> /// Saves mime types from virtual iisDirObject description into configuration file. /// </summary> /// <param name="vdir">Virtual iisDirObject description.</param> public void SetMimeMaps(WebVirtualDirectory virtualDir) { #region Revert to parent settings (inherited) using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.StaticContentSection); // section.RevertToParent(); // srvman.CommitChanges(); } #endregion // Ensure mime maps are set if (virtualDir.MimeMaps == null || virtualDir.MimeMaps.Length == 0) { return; } #region Put the change in effect using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.StaticContentSection); // var typesCollection = section.GetCollection(); // foreach (var item in virtualDir.MimeMaps) { // Make sure mime-type mapping file extension is formatted exactly as it should be if (!item.Extension.StartsWith(".")) { item.Extension = "." + item.Extension; } // int indexOf = FindMimeMap(typesCollection, item); // if (indexOf > -1) { var item2Renew = typesCollection[indexOf]; // FillConfigurationElementWithData(item2Renew, item); // continue; } // typesCollection.Add(CreateMimeMap(typesCollection, item)); } // srvman.CommitChanges(); } #endregion }
private void BindWebPublishingProfileFtpAccounts(WebVirtualDirectory item) { var ftpAccounts = ES.Services.FtpServers.GetFtpAccounts(PanelSecurity.PackageId, false); // MyFtpAccountList.DataSource = Array.FindAll(ftpAccounts, x => x.Folder.Equals(item.ContentPath)); MyFtpAccountList.DataBind(); // MyFtpAccountList.Items.Insert(0, new ListItem(GetLocalizedString("WebPublishing.ChooseFtpAccountPrompt"), String.Empty)); }
public void SetCustomErrors(WebVirtualDirectory virtualDir) { #region Revert to parent settings (inherited) using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.HttpErrorsSection); // section.RevertToParent(); // srvman.CommitChanges(); } #endregion // Http errors list is either empty or not set so defaults to the parent if (virtualDir.HttpErrors == null || virtualDir.HttpErrors.Length == 0) return; #region Put the change in effect using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.HttpErrorsSection); // var errorsCollection = section.GetCollection(); // errorsCollection.Clear(); // foreach (var item in virtualDir.HttpErrors) { int indexOf = FindHttpError(errorsCollection, item); // Just update the element attributes - IIS 7 API will do the rest if (indexOf > -1) { var item2Renew = errorsCollection[indexOf]; // FillConfigurationElementWithData(item2Renew, item, virtualDir); // continue; } // var item2Add = CreateHttpError(errorsCollection, item, virtualDir); // if (item2Add == null) continue; // errorsCollection.Add(item2Add); } // srvman.CommitChanges(); } #endregion }
public void BindWebItem(int packageId, WebVirtualDirectory item) { fileLookup.PackageId = item.PackageId; fileLookup.SelectedFile = item.ContentPath; string resSuffix = item.IIs7 ? "IIS7" : ""; chkRedirectExactUrl.Text = GetLocalizedString("chkRedirectExactUrl.Text" + resSuffix); chkRedirectDirectoryBelow.Text = GetLocalizedString("chkRedirectDirectoryBelow.Text" + resSuffix); chkRedirectPermanent.Text = GetLocalizedString("chkRedirectPermanent.Text" + resSuffix); chkRedirectExactUrl.Checked = item.RedirectExactUrl; chkRedirectDirectoryBelow.Checked = item.RedirectDirectoryBelow; chkRedirectPermanent.Checked = item.RedirectPermanent; chkDirectoryBrowsing.Checked = item.EnableDirectoryBrowsing; chkParentPaths.Checked = item.EnableParentPaths; chkWrite.Checked = item.EnableWritePermissions; chkDedicatedPool.Checked = item.DedicatedApplicationPool; chkDedicatedPool.Enabled = !item.SharePointInstalled; chkAuthAnonymous.Checked = item.EnableAnonymousAccess; chkAuthWindows.Checked = item.EnableWindowsAuthentication; chkAuthBasic.Checked = item.EnableBasicAuthentication; // default documents txtDefaultDocs.Text = String.Join("\n", item.DefaultDocs.Split(',', ';')); // redirection txtRedirectUrl.Text = item.HttpRedirect; bool redirectionEnabled = !String.IsNullOrEmpty(item.HttpRedirect); rbLocationFolder.Checked = !redirectionEnabled; rbLocationRedirect.Checked = redirectionEnabled; valRedirection.Enabled = redirectionEnabled; // store app pool value ViewState["ApplicationPool"] = item.ApplicationPool; ToggleLocationControls(); // toggle controls by quotas fileLookup.Enabled = PackagesHelper.CheckGroupQuotaEnabled(packageId, ResourceGroups.Web, Quotas.WEB_HOMEFOLDERS); rbLocationRedirect.Visible = PackagesHelper.CheckGroupQuotaEnabled(packageId, ResourceGroups.Web, Quotas.WEB_REDIRECTIONS); bool customSecurity = PackagesHelper.CheckGroupQuotaEnabled(packageId, ResourceGroups.Web, Quotas.WEB_SECURITY); chkWrite.Visible = customSecurity; // hide authentication options if not allowed pnlCustomAuth.Visible = customSecurity; // chkDedicatedPool.Visible = PackagesHelper.CheckGroupQuotaEnabled(packageId, ResourceGroups.Web, Quotas.WEB_APPPOOLS); pnlDefaultDocuments.Visible = PackagesHelper.CheckGroupQuotaEnabled(packageId, ResourceGroups.Web, Quotas.WEB_DEFAULTDOCS); }
public string GetPhysicalPathNonApp(ServerManager iisManager, WebVirtualDirectory virtualDir) { string siteId = (virtualDir.ParentSiteName == null) ? virtualDir.Name : virtualDir.ParentSiteName; // var iisSite = iisManager.Sites[siteId]; var applicationRoot = iisSite.Applications["/"]; var virtualRoot = applicationRoot.VirtualDirectories[virtualDir.VirtualPath]; return(virtualRoot.PhysicalPath); }
internal ConfigurationElementCollection GetHandlers(WebVirtualDirectory virtualDir) { // using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.HandlersSection); // return(section.GetCollection()); } }
/// <summary> /// Saves mime types from virtual iisDirObject description into configuration file. /// </summary> /// <param name="vdir">Virtual iisDirObject description.</param> public void SetMimeMaps(WebVirtualDirectory virtualDir) { #region Revert to parent settings (inherited) using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.StaticContentSection); // section.RevertToParent(); // srvman.CommitChanges(); } #endregion // Ensure mime maps are set if (virtualDir.MimeMaps == null || virtualDir.MimeMaps.Length == 0) return; #region Put the change in effect using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.StaticContentSection); // var typesCollection = section.GetCollection(); // foreach (var item in virtualDir.MimeMaps) { // Make sure mime-type mapping file extension is formatted exactly as it should be if (!item.Extension.StartsWith(".")) item.Extension = "." + item.Extension; // int indexOf = FindMimeMap(typesCollection, item); // if (indexOf > -1) { var item2Renew = typesCollection[indexOf]; // FillConfigurationElementWithData(item2Renew, item); // continue; } // typesCollection.Add(CreateMimeMap(typesCollection, item)); } // srvman.CommitChanges(); } #endregion }
public void SetAuthenticationSettings(WebVirtualDirectory virtualDir) { using (var srvman = GetServerManager()) { var config = srvman.GetApplicationHostConfiguration(); // var section = config.GetSection(Constants.BasicAuthenticationSection, virtualDir.FullQualifiedPath); // section.SetAttributeValue(EnabledAttribute, virtualDir.EnableBasicAuthentication); // srvman.CommitChanges(); } }
public void SetClassicAspSettings(WebVirtualDirectory virtualDir) { using (var srvman = GetServerManager()) { var config = srvman.GetApplicationHostConfiguration(); // var aspSection = config.GetSection(SectionName, virtualDir.FullQualifiedPath); // aspSection.SetAttributeValue(EnableParentPathsAttribute, virtualDir.EnableParentPaths); // srvman.CommitChanges(); } }
private void ToggleWmSvcControls(WebVirtualDirectory item) { if (!item.GetValue <bool>(WebVirtualDirectory.WmSvcAvailable)) { pnlWmcSvcManagement.Visible = false; pnlNotInstalled.Visible = true; // return; } // pnlWmcSvcManagement.Visible = true; pnlNotInstalled.Visible = false; // string wmSvcAccountName = item.GetValue <string>(WebVirtualDirectory.WmSvcAccountName); bool wmcSvcSiteEnabled = item.GetValue <bool>(WebVirtualDirectory.WmSvcSiteEnabled); btnWmSvcSiteEnable.Visible = true; txtWmSvcAccountName.Visible = true; // txtWmSvcAccountPassword.Text = txtWmSvcAccountPassword.Attributes["value"] = String.Empty; // txtWmSvcAccountPasswordC.Text = txtWmSvcAccountPasswordC.Attributes["value"] = String.Empty; // Disable edit mode if WmSvc account name is set if (wmcSvcSiteEnabled) { btnWmSvcSiteEnable.Visible = false; txtWmSvcAccountName.Visible = false; // txtWmSvcAccountPassword.Text = PasswordControl.EMPTY_PASSWORD; txtWmSvcAccountPassword.Attributes["value"] = PasswordControl.EMPTY_PASSWORD; // txtWmSvcAccountPasswordC.Text = PasswordControl.EMPTY_PASSWORD; txtWmSvcAccountPasswordC.Attributes["value"] = PasswordControl.EMPTY_PASSWORD; } // litWmSvcAccountName.Visible = wmcSvcSiteEnabled; btnWmSvcSiteDisable.Visible = wmcSvcSiteEnabled; btnWmSvcChangePassw.Visible = wmcSvcSiteEnabled; pnlWmSvcSiteDisabled.Visible = !wmcSvcSiteEnabled; pnlWmSvcSiteEnabled.Visible = wmcSvcSiteEnabled; // txtWmSvcAccountName.Text = wmSvcAccountName; litWmSvcAccountName.Text = wmSvcAccountName; }
public void UpdateVirtualDirectory(string siteId, WebVirtualDirectory directory) { try { Log.WriteStart("'{0}' UpdateVirtualDirectory", ProviderSettings.ProviderName); WebProvider.UpdateVirtualDirectory(siteId, directory); Log.WriteEnd("'{0}' UpdateVirtualDirectory", ProviderSettings.ProviderName); } catch (Exception ex) { Log.WriteError(String.Format("'{0}' UpdateVirtualDirectory", ProviderSettings.ProviderName), ex); throw; } }
public void LoadHttpRedirectSettings(WebVirtualDirectory virtualDir) { using (var srvman = GetServerManager()) { // Load web site configuration var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // Load corresponding section var section = config.GetSection(Constants.HttpRedirectSection); // if (!Convert.ToBoolean(section.GetAttributeValue(EnabledAttribute))) return; // virtualDir.RedirectExactUrl = Convert.ToBoolean(section.GetAttributeValue(ExactDestinationAttribute)); virtualDir.RedirectDirectoryBelow = Convert.ToBoolean(section.GetAttributeValue(ChildOnlyAttribute)); virtualDir.HttpRedirect = Convert.ToString(section.GetAttributeValue(DestinationAttribute)); virtualDir.RedirectPermanent = String.Equals("301", Convert.ToString(section.GetAttributeValue(HttpResponseStatusAttribute))); } }
public void SetHttpRedirectSettings(WebVirtualDirectory virtualDir) { #region Revert to parent settings (inherited) using (var srvman = GetServerManager()) { // Load web site configuration var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // Load corresponding section var section = config.GetSection(Constants.HttpRedirectSection); // section.RevertToParent(); // srvman.CommitChanges(); } #endregion // HttpRedirect property is not specified so defaults to the parent if (String.IsNullOrEmpty(virtualDir.HttpRedirect)) return; #region Put changes in effect using (var srvman = GetServerManager()) { // Load web site configuration var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // Load corresponding section var section = config.GetSection(Constants.HttpRedirectSection); // Enable http redirect feature section.SetAttributeValue(EnabledAttribute, true); section.SetAttributeValue(ExactDestinationAttribute, virtualDir.RedirectExactUrl); section.SetAttributeValue(DestinationAttribute, virtualDir.HttpRedirect); section.SetAttributeValue(ChildOnlyAttribute, virtualDir.RedirectDirectoryBelow); // Configure HTTP Response Status if (virtualDir.RedirectPermanent) section.SetAttributeValue(HttpResponseStatusAttribute, "Permanent"); else section.SetAttributeValue(HttpResponseStatusAttribute, "Found"); // srvman.CommitChanges(); } #endregion }
/// <summary> /// Loads available mime maps into supplied virtual iisDirObject description. /// </summary> /// <param name="vdir">Virtual iisDirObject description.</param> public void GetMimeMaps(ServerManager srvman, WebVirtualDirectory virtualDir) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.StaticContentSection); // var mappings = new List<MimeMap>(); // foreach (var item in section.GetCollection()) { var item2Get = GetMimeMap(item); // if (item2Get == null) continue; // mappings.Add(item2Get); } // virtualDir.MimeMaps = mappings.ToArray(); }
internal ConfigurationElementCollection GetHandlers(WebVirtualDirectory virtualDir) { // using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.HandlersSection); // return section.GetCollection(); } }
public WebVirtualDirectory GetVirtualDirectory(string siteId, string directoryName) { // if (String.IsNullOrEmpty(siteId)) throw new ArgumentNullException("siteId"); // if (String.IsNullOrEmpty(directoryName)) throw new ArgumentNullException("directoryName"); // if (!SiteExists(siteId)) return null; // using (var srvman = GetServerManager()) { var site = srvman.Sites[siteId]; // var vdir = new WebVirtualDirectory { Name = directoryName, ParentSiteName = siteId }; // We assume that we create only applications. vdir.ApplicationPool = site.Applications[vdir.VirtualPath].ApplicationPoolName; // return vdir; } }
private bool FillConfigurationElementWithData(ConfigurationElement item2Fill, HttpError error, WebVirtualDirectory virtualDir) { // code Int64 statusCode = 0; if (!Int64.TryParse(error.ErrorCode, out statusCode) || statusCode < 400 || statusCode > 999) return false; // sub-code Int32 subStatusCode = -1; if (!Int32.TryParse(error.ErrorSubcode, out subStatusCode)) return false; // if (subStatusCode == 0) subStatusCode = -1; // correct error content string errorContent = error.ErrorContent; if (error.HandlerType.Equals("File")) { if(error.ErrorContent.Length > virtualDir.ContentPath.Length) errorContent = errorContent.Substring(virtualDir.ContentPath.Length); errorContent = FileUtils.CorrectRelativePath(errorContent); } item2Fill.SetAttributeValue(StatusCodeAttribute, statusCode); item2Fill.SetAttributeValue(SubStatusCodeAttribute, subStatusCode); item2Fill.SetAttributeValue(PathAttribute, errorContent); // item2Fill.SetAttributeValue(ResponseModeAttribute, error.HandlerType); // We are succeeded return true; }
public WebVirtualDirectory[] GetZooApplications(ServerManager srvman, string siteId) { if (!SiteExists(srvman, siteId)) return new WebVirtualDirectory[] { }; var vdirs = new List<WebVirtualDirectory>(); var iisObject = srvman.Sites[siteId]; // foreach (var item in iisObject.Applications) { Configuration cfg = item.GetWebConfiguration(); string location = siteId + ConfigurationUtility.GetQualifiedVirtualPath(item.Path); ConfigurationSection section; try { section = cfg.GetSection("system.webServer/heliconZoo", location); } catch(Exception) { // looks like Helicon Zoo is not installed, return empty array return vdirs.ToArray(); } if (section.GetCollection().Count > 0) { WebVirtualDirectory vdir = new WebVirtualDirectory { Name = ConfigurationUtility.GetNonQualifiedVirtualPath(item.Path), ContentPath = item.VirtualDirectories[0].PhysicalPath }; ConfigurationElement zooAppElement = section.GetCollection()[0]; ConfigurationElementCollection envColl = zooAppElement.GetChildElement("environmentVariables").GetCollection(); foreach (ConfigurationElement env in envColl) { if ((string) env.GetAttributeValue("name") == "CONSOLE_URL") { vdir.ConsoleUrl = ConfigurationUtility.GetQualifiedVirtualPath(item.Path); if (!vdir.ConsoleUrl.EndsWith("/")) { vdir.ConsoleUrl += "/"; } vdir.ConsoleUrl += (string)env.GetAttributeValue("value"); } } vdirs.Add(vdir); } } return vdirs.ToArray(); }
private HttpError GetHttpError(ConfigurationElement element, WebVirtualDirectory virtualDir) { if (element == null || virtualDir == null) return null; // skip inherited http errors if (!element.IsLocallyStored) return null; // var error = new HttpError { ErrorCode = Convert.ToString(element.GetAttributeValue(StatusCodeAttribute)), ErrorSubcode = Convert.ToString(element.GetAttributeValue(SubStatusCodeAttribute)), ErrorContent = Convert.ToString(element.GetAttributeValue(PathAttribute)), HandlerType = Enum.GetName(typeof(HttpErrorResponseMode), element.GetAttributeValue(ResponseModeAttribute)) }; // Make error path relative to the virtual directory's root folder if (error.HandlerType.Equals("File") // 0 is supposed to be File && error.ErrorContent.Length > virtualDir.ContentPath.Length) { error.ErrorContent = error.ErrorContent.Substring(virtualDir.ContentPath.Length); } // return error; }
private ConfigurationElement CreateHttpError(ConfigurationElementCollection collection, HttpError error, WebVirtualDirectory virtualDir) { // Skip elements either empty or with empty data if (error == null || String.IsNullOrEmpty(error.ErrorContent)) return null; // Create new custom error ConfigurationElement error2Add = collection.CreateElement("error"); if (!FillConfigurationElementWithData(error2Add, error, virtualDir)) return null; // return error2Add; }
public bool VirtualDirectoryExists(string siteId, string directoryName) { if (!SiteExists(siteId)) return false; using (var srvman = GetServerManager()) { var vdir = new WebVirtualDirectory { Name = directoryName, ParentSiteName = siteId }; // return (srvman.Sites[siteId].Applications[vdir.VirtualPath] != null); } }
public void DeleteVirtualDirectory(WebVirtualDirectory virtualDir) { if (!SiteExists(virtualDir.ParentSiteName)) return; // using (var srvman = GetServerManager()) { var iisSiteObject = srvman.Sites[virtualDir.ParentSiteName]; var iisAppObject = iisSiteObject.Applications[virtualDir.VirtualPath]; // if (iisAppObject != null) iisSiteObject.Applications.Remove(iisAppObject); // srvman.CommitChanges(); } }
public string GetPhysicalPath(WebVirtualDirectory virtualDir) { using (var srvman = GetServerManager()) { string siteId = (virtualDir.ParentSiteName == null) ? virtualDir.Name : virtualDir.ParentSiteName; // var iisObject = srvman.Sites[siteId]; if (iisObject == null) return null; // var iisAppObject = iisObject.Applications[virtualDir.VirtualPath]; if (iisAppObject == null) return null; // var iisDirObject = iisAppObject.VirtualDirectories["/"]; if (iisDirObject == null) return null; // return iisDirObject.PhysicalPath; } }
public void SetCustomErrors(WebVirtualDirectory virtualDir) { #region Revert to parent settings (inherited) using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.HttpErrorsSection); // section.RevertToParent(); // srvman.CommitChanges(); } #endregion #region Put the change in effect using (var srvman = GetServerManager()) { var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // var section = config.GetSection(Constants.HttpErrorsSection); // set error mode section.SetAttributeValue("errorMode", virtualDir.ErrorMode); if (virtualDir.ErrorMode == HttpErrorsMode.Detailed) { section.SetAttributeValue("existingResponse", HttpErrorsExistingResponse.PassThrough); } else { section.SetAttributeValue("existingResponse", HttpErrorsExistingResponse.Auto); } // save custom errors if (virtualDir.HttpErrors != null && virtualDir.HttpErrors.Length > 0) { var errorsCollection = section.GetCollection(); // foreach (var item in virtualDir.HttpErrors) { int indexOf = FindHttpError(errorsCollection, item); // Just update the element attributes - IIS 7 API will do the rest if (indexOf > -1) { var item2Renew = errorsCollection[indexOf]; // FillConfigurationElementWithData(item2Renew, item, virtualDir); // continue; } // var item2Add = CreateHttpError(errorsCollection, item, virtualDir); // if (item2Add == null) continue; // errorsCollection.Add(item2Add); } } // srvman.CommitChanges(); } #endregion }
public void UpdateVirtualDirectory(WebVirtualDirectory virtualDir) { // ensure physical site content path if (String.IsNullOrEmpty(virtualDir.ContentPath)) throw new Exception("VirtualDirContentPathEmpty"); // using (var srvman = GetServerManager()) { // Obtain parent web site var webSite = srvman.Sites[virtualDir.ParentSiteName]; // Ensure web site has been found if (webSite == null) throw new ApplicationException("WebSiteNotFound"); // var v_dir = webSite.Applications[virtualDir.VirtualPath]; v_dir.ApplicationPoolName = virtualDir.ApplicationPool; v_dir.VirtualDirectories[0].PhysicalPath = virtualDir.ContentPath; // srvman.CommitChanges(); } }
public ApplicationPool GetApplicationPool(WebVirtualDirectory virtualDir) { if (virtualDir == null) throw new ArgumentNullException("vdir"); // read app pool using (var srvman = GetServerManager()) { var appPool = srvman.ApplicationPools[virtualDir.ApplicationPool]; // if (appPool == null) throw new ApplicationException("ApplicationPoolNotFound"); // return appPool; } }
public void ConfigureConnectAsFeature(WebVirtualDirectory virtualDir) { // read website using (var srvman = GetServerManager()) { var webSite = String.IsNullOrEmpty(virtualDir.ParentSiteName) ? srvman.Sites[virtualDir.Name] : srvman.Sites[virtualDir.ParentSiteName]; // if (webSite != null) { // get root iisAppObject var webApp = webSite.Applications[virtualDir.VirtualPath]; // if (webApp != null) { var vdir = webApp.VirtualDirectories["/"]; // if (vdir != null) { vdir.LogonMethod = AuthenticationLogonMethod.ClearText; // if (virtualDir.DedicatedApplicationPool) { var appPool = GetApplicationPool(virtualDir); vdir.UserName = appPool.ProcessModel.UserName; vdir.Password = appPool.ProcessModel.Password; } else { vdir.UserName = virtualDir.AnonymousUsername; vdir.Password = virtualDir.AnonymousUserPassword; } // srvman.CommitChanges(); } } } } }
/// <summary> /// Adds non existent script maps. /// </summary> /// <param name="installedHandlers">Already installed scrip maps.</param> /// <param name="extensions">Extensions to check.</param> /// <param name="processor">Extensions processor.</param> internal void AddScriptMaps(WebVirtualDirectory virtualDir, IEnumerable<string> extensions, string processor, string scName, string scModule) { // Empty processor is out of interest... if (String.IsNullOrEmpty(processor)) return; // This section helps to overcome "legacy" issues //using (var srvman = GetServerManager()) //{ // var config = srvman.GetWebConfiguration(virtualDir.FullQualifiedPath); // // // var handlersSection = config.GetSection(Constants.HandlersSection); // // Do a complete section cleanup // handlersSection.RevertToParent(); // // // srvman.CommitChanges(); //} // using (var srvman = GetServerManager()) { var config = srvman.GetApplicationHostConfiguration(); // var handlersSection = config.GetSection(Constants.HandlersSection, virtualDir.FullQualifiedPath); var handlersCollection = handlersSection.GetCollection(); // Iterate over extensions in order to setup non-existent handlers foreach (string extension in extensions) { var extParts = extension.Split(','); var path = extParts[0]; var existentHandler = FindHandlerAction(handlersCollection, path, processor); // No need to add an existing handler if (existentHandler != null) continue; // Create a new handler var handler = handlersCollection.CreateElement(); // build script mapping name var scriptMappingName = String.Format(scName, path); // handler["name"] = scriptMappingName; handler["path"] = "*" + path; handler["verb"] = "GET,HEAD,POST,DEBUG"; handler["scriptProcessor"] = processor; handler["resourceType"] = ResourceType.File; handler["modules"] = scModule; // add handler handlersCollection.AddAt(0, handler); } // srvman.CommitChanges(); } // Allow a script module... switch (scModule) { case Constants.CgiModule: // Allow either ISAPI or CGI module case Constants.IsapiModule: AddIsapiAndCgiRestriction(processor, true); break; case Constants.FastCgiModule: // Allow FastCGI module AddFastCgiApplication(processor, String.Empty); break; default: Log.WriteWarning("Unknown Script Module has been requested to allow: {0};", scModule); break; } }
internal void RemoveScriptMaps(WebVirtualDirectory virtualDir, IEnumerable<string> extensions, string processor) { if (String.IsNullOrEmpty(processor)) return; // if (virtualDir == null) return; // using (var srvman = GetServerManager()) { var config = srvman.GetApplicationHostConfiguration(); // var handlersSection = config.GetSection(Constants.HandlersSection, virtualDir.FullQualifiedPath); var handlersCollection = handlersSection.GetCollection(); // foreach (string extension in extensions) { var extParts = extension.Split(','); var path = extParts[0]; var existentHandler = FindHandlerAction(handlersCollection, path, processor); // remove handler if exists if (existentHandler != null) handlersCollection.Remove(existentHandler); } // srvman.CommitChanges(); } }