/// <summary> /// Gets a list of the client target names configured for the application. Will return null /// if either target names are not defined or unrestricted security access is not available. /// </summary> /// <returns>A list of client target names.</returns> private static SortedList <string, string> GetClientTargets() { try { ClientTargetSection targets = GetClientTargetsSection(); if (targets != null) { // Client targets have been defined so set the sorted list to include // these details. var clientNames = new SortedList <string, string>(); for (int index = 0; index < targets.ClientTargets.Count; index++) { clientNames.Add( targets.ClientTargets[index].Alias, targets.ClientTargets[index].UserAgent); } return(clientNames); } } catch (SecurityException) { // There is nothing we can do so return null. return(null); } return(null); }
public void Defaults() { ClientTargetSection c = new ClientTargetSection(); Assert.IsNotNull(c.ClientTargets, "A1"); Assert.AreEqual(typeof(ClientTargetCollection), c.ClientTargets.GetType(), "A2"); }
public static void ClientTarget_load(Page p) { ClientTargetSection sec = (ClientTargetSection)WebConfigurationManager.GetSection("system.web/clientTarget"); ClientTarget clientTarget = sec.ClientTargets ["downlevel"]; if (clientTarget == null) { Assert.Fail("ClientTarget Section: downlevel"); } }
internal override void ProcessMainAttributes (IDictionary atts) { // note: the 'enableSessionState' configuration property is // processed in a case-sensitive manner while the page-level // attribute is processed case-insensitive string enabless = GetString (atts, "EnableSessionState", null); if (enabless != null) { if (String.Compare (enabless, "readonly", true, Helpers.InvariantCulture) == 0) enableSessionState = PagesEnableSessionState.ReadOnly; else if (String.Compare (enabless, "true", true, Helpers.InvariantCulture) == 0) enableSessionState = PagesEnableSessionState.True; else if (String.Compare (enabless, "false", true, Helpers.InvariantCulture) == 0) enableSessionState = PagesEnableSessionState.False; else ThrowParseException ("Invalid value for enableSessionState: " + enabless); } string value = GetString (atts, "CodePage", null); if (value != null) { if (responseEncoding != null) ThrowParseException ("CodePage and ResponseEncoding are mutually exclusive."); #if NET_2_0 if (!BaseParser.IsExpression (value)) { #endif int cpval = -1; try { cpval = (int) UInt32.Parse (value); } catch { ThrowParseException ("Invalid value for CodePage: " + value); } try { Encoding.GetEncoding (cpval); } catch { ThrowParseException ("Unsupported codepage: " + value); } #if NET_2_0 codepage = new MainDirectiveAttribute <int> (cpval, true); #else codepage = new MainDirectiveAttribute (cpval); #endif #if NET_2_0 } else codepage = new MainDirectiveAttribute <int> (value); #endif } value = GetString (atts, "ResponseEncoding", null); if (value != null) { if (codepage != null) ThrowParseException ("CodePage and ResponseEncoding are mutually exclusive."); #if NET_2_0 if (!BaseParser.IsExpression (value)) { #endif try { Encoding.GetEncoding (value); } catch { ThrowParseException ("Unsupported encoding: " + value); } #if NET_2_0 responseEncoding = new MainDirectiveAttribute <string> (value, true); #else responseEncoding = new MainDirectiveAttribute (value); #endif #if NET_2_0 } else responseEncoding = new MainDirectiveAttribute <string> (value); #endif } contentType = GetString (atts, "ContentType", null); value = GetString (atts, "LCID", null); if (value != null) { #if NET_2_0 if (!BaseParser.IsExpression (value)) { #endif int parsedLcid = -1; try { parsedLcid = (int) UInt32.Parse (value); } catch { ThrowParseException ("Invalid value for LCID: " + value); } CultureInfo ci = null; try { ci = new CultureInfo (parsedLcid); } catch { ThrowParseException ("Unsupported LCID: " + value); } if (ci.IsNeutralCulture) { string suggestedCulture = SuggestCulture (ci.Name); string fmt = "LCID attribute must be set to a non-neutral Culture."; if (suggestedCulture != null) { ThrowParseException (fmt + " Please try one of these: " + suggestedCulture); } else { ThrowParseException (fmt); } } #if NET_2_0 lcid = new MainDirectiveAttribute <int> (parsedLcid, true); #else lcid = new MainDirectiveAttribute (parsedLcid); #endif #if NET_2_0 } else lcid = new MainDirectiveAttribute <int> (value); #endif } culture = GetString (atts, "Culture", null); if (culture != null) { if (lcid != null) ThrowParseException ("Culture and LCID are mutually exclusive."); CultureInfo ci = null; try { #if NET_2_0 if (!culture.StartsWith ("auto")) #endif ci = new CultureInfo (culture); } catch { ThrowParseException ("Unsupported Culture: " + culture); } if (ci != null && ci.IsNeutralCulture) { string suggestedCulture = SuggestCulture (culture); string fmt = "Culture attribute must be set to a non-neutral Culture."; if (suggestedCulture != null) ThrowParseException (fmt + " Please try one of these: " + suggestedCulture); else ThrowParseException (fmt); } } uiculture = GetString (atts, "UICulture", null); if (uiculture != null) { CultureInfo ci = null; try { #if NET_2_0 if (!uiculture.StartsWith ("auto")) #endif ci = new CultureInfo (uiculture); } catch { ThrowParseException ("Unsupported Culture: " + uiculture); } if (ci != null && ci.IsNeutralCulture) { string suggestedCulture = SuggestCulture (uiculture); string fmt = "UICulture attribute must be set to a non-neutral Culture."; if (suggestedCulture != null) ThrowParseException (fmt + " Please try one of these: " + suggestedCulture); else ThrowParseException (fmt); } } string tracestr = GetString (atts, "Trace", null); if (tracestr != null) { haveTrace = true; atts ["Trace"] = tracestr; trace = GetBool (atts, "Trace", false); } string tracemodes = GetString (atts, "TraceMode", null); if (tracemodes != null) { bool valid = true; try { tracemode = (TraceMode) Enum.Parse (typeof (TraceMode), tracemodes, false); } catch { valid = false; } if (!valid || tracemode == TraceMode.Default) ThrowParseException ("The 'tracemode' attribute is case sensitive and must be " + "one of the following values: SortByTime, SortByCategory."); } errorPage = GetString (atts, "ErrorPage", null); validateRequest = GetBool (atts, "ValidateRequest", validateRequest); value = GetString (atts, "ClientTarget", null); if (value != null) { #if NET_2_0 if (!BaseParser.IsExpression (value)) { value = value.Trim (); ClientTargetSection sec = GetConfigSection <ClientTargetSection> ("system.web/clientTarget"); ClientTarget ct = null; if ((ct = sec.ClientTargets [value]) == null) value = value.ToLowerInvariant (); if (ct == null && (ct = sec.ClientTargets [value]) == null) { ThrowParseException (String.Format ( "ClientTarget '{0}' is an invalid alias. See the " + "documentation for <clientTarget> config. section.", clientTarget)); } value = ct.UserAgent; clientTarget = new MainDirectiveAttribute <string> (value, true); #else NameValueCollection coll; coll = (NameValueCollection) HttpContext.GetAppConfig ("system.web/clientTarget"); object ct = null; if (coll != null) { ct = coll [value]; if (ct == null) ct = coll [value.ToLower (Helpers.InvariantCulture)]; } if (ct == null) { ThrowParseException (String.Format ( "ClientTarget '{0}' is an invalid alias. See the " + "documentation for <clientTarget> config. section.", clientTarget)); } clientTarget = new MainDirectiveAttribute (ct); #endif #if NET_2_0 } else { clientTarget = new MainDirectiveAttribute <string> (value); } #endif } notBuffer = !GetBool (atts, "Buffer", true); #if NET_2_0 async = GetBool (atts, "Async", false); string asyncTimeoutVal = GetString (atts, "AsyncTimeout", null); if (asyncTimeoutVal != null) { try { asyncTimeout = Int32.Parse (asyncTimeoutVal); } catch (Exception) { ThrowParseException ("AsyncTimeout must be an integer value"); } } value = GetString (atts, "MasterPageFile", masterPage != null ? masterPage.Value : null); if (!String.IsNullOrEmpty (value)) { if (!BaseParser.IsExpression (value)) { if (!HostingEnvironment.VirtualPathProvider.FileExists (value)) ThrowParseFileNotFound (value); AddDependency (value); masterPage = new MainDirectiveAttribute <string> (value, true); } else masterPage = new MainDirectiveAttribute <string> (value); } value = GetString(atts, "Title", null); if (value != null) { if (!BaseParser.IsExpression (value)) title = new MainDirectiveAttribute <string> (value, true); else title = new MainDirectiveAttribute <string> (value); } value = GetString (atts, "Theme", theme != null ? theme.Value : null); if (value != null) { if (!BaseParser.IsExpression (value)) theme = new MainDirectiveAttribute <string> (value, true); else theme = new MainDirectiveAttribute <string> (value); } styleSheetTheme = GetString (atts, "StyleSheetTheme", styleSheetTheme); enable_event_validation = GetBool (atts, "EnableEventValidation", enable_event_validation); maintainScrollPositionOnPostBack = GetBool (atts, "MaintainScrollPositionOnPostBack", maintainScrollPositionOnPostBack); #endif if (atts.Contains ("EnableViewStateMac")) { enableViewStateMac = GetBool (atts, "EnableViewStateMac", enableViewStateMac); enableViewStateMacSet = true; } // Ignored by now GetString (atts, "SmartNavigation", null); base.ProcessMainAttributes (atts); }
static void Main(string[] args) { string inputStr = String.Empty; string option = String.Empty; // Define a regular expression to allow only // alphanumeric inputs that are at most 20 character // long. For instance "/iii:". Regex rex = new Regex(@"[^\/w]{1,20}:"); // Parse the user's input. if (args.Length < 1) { // No option entered. Console.Write("Input parameter missing."); return; } else { // Get the user's option. inputStr = args[0].ToLower(); if (!(rex.Match(inputStr)).Success) { // Wrong option format used. Console.Write("Input parameter format not allowed."); return; } } // <Snippet1> // Get the Web application configuration. System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration( "/aspnetTest"); // Get the <system.web> group. SystemWebSectionGroup systemWeb = (SystemWebSectionGroup)configuration.GetSectionGroup("system.web"); // </Snippet1> try { switch (inputStr) { case "/anonymous:": // <Snippet2> // Get the anonymousIdentification section. AnonymousIdentificationSection anonymousIdentification = systemWeb.AnonymousIdentification; // Read section information. info = anonymousIdentification.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet2> Console.Write(msg); break; case "/authentication:": // <Snippet3> // Get the authentication section. AuthenticationSection authentication = systemWeb.Authentication; // Read section information. info = authentication.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet3> Console.Write(msg); break; case "/authorization:": // <Snippet4> // Get the authorization section. AuthorizationSection authorization = systemWeb.Authorization; // Read section information. info = authorization.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet4> Console.Write(msg); break; case "/compilation:": // <Snippet5> // Get the compilation section. CompilationSection compilation = systemWeb.Compilation; // Read section information. info = compilation.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet5> Console.Write(msg); break; case "/customerrors:": // <Snippet6> // Get the customerrors section. CustomErrorsSection customerrors = systemWeb.CustomErrors; // Read section information. info = customerrors.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet6> Console.Write(msg); break; case "/globalization:": // <Snippet7> // Get the globalization section. GlobalizationSection globalization = systemWeb.Globalization; // Read section information. info = globalization.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet7> Console.Write(msg); break; case "/httpcookies:": // <Snippet8> // Get the httpCookies section. HttpCookiesSection httpCookies = systemWeb.HttpCookies; // Read section information. info = httpCookies.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet8> Console.Write(msg); break; case "/httphandlers:": // <Snippet9> // Get the httpHandlers section. HttpHandlersSection httpHandlers = systemWeb.HttpHandlers; // Read section information. info = httpHandlers.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet9> Console.Write(msg); break; case "/httpmodules:": // <Snippet10> // Get the httpModules section. HttpModulesSection httpModules = systemWeb.HttpModules; // Read section information. info = httpModules.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet10> Console.Write(msg); break; case "/httpruntime:": // <Snippet11> // Get the httpRuntime section. HttpRuntimeSection httpRuntime = systemWeb.HttpRuntime; // Read section information. info = httpRuntime.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet11> Console.Write(msg); break; case "/identity:": // <Snippet12> // Get the identity section. IdentitySection identity = systemWeb.Identity; // Read section information. info = identity.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet12> Console.Write(msg); break; case "/machinekey:": // <Snippet13> // Get the machineKey section. MachineKeySection machineKey = systemWeb.MachineKey; // Read section information. info = machineKey.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet13> Console.Write(msg); break; case "/membership:": // <Snippet14> // Get the membership section. MembershipSection membership = systemWeb.Membership; // Read section information. info = membership.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet14> Console.Write(msg); break; case "/pages:": // <Snippet15> // Get the pages section. PagesSection pages = systemWeb.Pages; // Read section information. info = pages.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet15> Console.Write(msg); break; case "/processModel:": // <Snippet16> // Get the processModel section. ProcessModelSection processModel = systemWeb.ProcessModel; // Read section information. info = processModel.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet16> Console.Write(msg); break; case "/profile:": // <Snippet17> // Get the profile section. ProfileSection profile = systemWeb.Profile; // Read section information. info = profile.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet17> Console.Write(msg); break; case "/roleManager:": // <Snippet18> // Get the roleManager section. RoleManagerSection roleManager = systemWeb.RoleManager; // Read section information. info = roleManager.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet18> Console.Write(msg); break; case "/securityPolicy:": // <Snippet19> // Get the securityPolicy section. SecurityPolicySection securityPolicy = systemWeb.SecurityPolicy; // Read section information. info = securityPolicy.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet19> Console.Write(msg); break; case "/sessionState:": // <Snippet20> // Get the sessionState section. SessionStateSection sessionState = systemWeb.SessionState; // Read section information. info = sessionState.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet20> Console.Write(msg); break; case "/sitemap:": // <Snippet21> // Get the siteMap section. SiteMapSection siteMap = systemWeb.SiteMap; // Read section information. info = siteMap.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet21> Console.Write(msg); break; case "/trace:": // <Snippet22> // Get the trace section. TraceSection trace = systemWeb.Trace; // Read section information. info = trace.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet22> Console.Write(msg); break; case "/trust:": // <Snippet23> // Get the trust section. TrustSection trust = systemWeb.Trust; // Read section information. info = trust.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet23> Console.Write(msg); break; case "/browserCaps:": // <Snippet24> // Get the browserCaps section. DefaultSection browserCaps = systemWeb.BrowserCaps; // Read section information. info = browserCaps.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet24> Console.Write(msg); break; case "/clientTarget:": // <Snippet25> // Get the clientTarget section. ClientTargetSection clientTarget = systemWeb.ClientTarget; // Read section information. info = clientTarget.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet25> Console.Write(msg); break; case "/deployment:": // <Snippet26> // Get the deployment section. DeploymentSection deployment = systemWeb.Deployment; // Read section information. info = deployment.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet26> Console.Write(msg); break; case "/deviceFilters:": // <Snippet27> // Get the deviceFilters section. DefaultSection deviceFilters = systemWeb.DeviceFilters; // Read section information. info = deviceFilters.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet27> Console.Write(msg); break; case "/healthMonitoring:": // <Snippet28> // Get the healthMonitoring section. HealthMonitoringSection healthMonitoring = systemWeb.HealthMonitoring; // Read section information. info = healthMonitoring.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet28> Console.Write(msg); break; case "/hostingEnvironment:": // <Snippet29> // Get the hostingEnvironment section. HostingEnvironmentSection hostingEnvironment = systemWeb.HostingEnvironment; // Read section information. info = hostingEnvironment.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet29> Console.Write(msg); break; case "/mobileControls:": // <Snippet30> // Get the mobileControls section. ConfigurationSection mobileControls = systemWeb.MobileControls; // Read section information. info = mobileControls.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet30> Console.Write(msg); break; case "/protocols:": // <Snippet31> // Get the protocols section. DefaultSection protocols = systemWeb.Protocols; // Read section information. info = protocols.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet31> Console.Write(msg); break; case "/urlMappings:": // <Snippet32> // Get the urlMappings section. UrlMappingsSection urlMappings = systemWeb.UrlMappings; // Read section information. info = urlMappings.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet32> Console.Write(msg); break; case "/webControls:": // <Snippet33> // Get the webControls section. WebControlsSection webControls = systemWeb.WebControls; // Read section information. info = webControls.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet33> Console.Write(msg); break; case "/webParts:": // <Snippet34> // Get the webParts section. WebPartsSection webParts = systemWeb.WebParts; // Read section information. info = webParts.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet34> Console.Write(msg); break; case "/webServices:": // <Snippet35> // Get the webServices section. WebServicesSection webServices = systemWeb.WebServices; // Read section information. info = webServices.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet35> Console.Write(msg); break; case "/XhtmlConformance:": // <Snippet36> // Get the xhtmlConformance section. XhtmlConformanceSection xhtmlConformance = systemWeb.XhtmlConformance; // Read section information. info = xhtmlConformance.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet36> Console.Write(msg); break; case "/all:": StringBuilder allSections = new StringBuilder(); ConfigurationSectionGroup systemWebGroup = configuration.GetSectionGroup("system.web"); int i = 0; foreach (ConfigurationSection section in systemWebGroup.Sections) { i += 1; info = section.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); if (i < 10) { msg = String.Format( "{0})Name: {1}\nDeclared: {2}\nType: {3}\n", i.ToString(), name, declared, type); } else { msg = String.Format( "{0})Name: {1}\nDeclared: {2}\nType: {3}\n", i.ToString(), name, declared, type); } allSections.AppendLine(msg); } // Console.WriteLine(systemWebGroup.Name); // Console.WriteLine(systemWebGroup.SectionGroupName); Console.Write(allSections.ToString()); break; default: // Option is not allowed.. Console.Write("Input not allowed."); break; } } catch (ArgumentException e) { // Never display this. Use it for // debugging purposes. msg = e.ToString(); } }
static void Main(string[] args) { string inputStr = String.Empty; string option = String.Empty; // Define a regular expression to allow only // alphanumeric inputs that are at most 20 characters // long. For instance "/iii:". Regex rex = new Regex(@"[^\/w]{1,20}"); // Parse the user's input. if (args.Length < 1) { // No option entered. Console.Write("Input parameter missing."); return; } else { // Get the user's option. inputStr = args[0].ToLower(); if (!(rex.Match(inputStr)).Success) { // Wrong option format used. Console.Write("Input format not allowed."); return; } } // <Snippet1> // Get the Web application configuration. System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration( "/aspnetTest"); // Get the <clientTarget> section. ClientTargetSection clientTargetSection = (ClientTargetSection)configuration.GetSection( "system.web/clientTarget"); // <Snippet2> // Get the client target collection. ClientTargetCollection clientTargets = clientTargetSection.ClientTargets; // </Snippet2> // </Snippet1> try { switch (inputStr) { case "/alias": // <Snippet3> // Get the first client target // in the collection. clientTarget = clientTargets[0]; // Get the alias. alias = clientTarget.Alias; msg = String.Format( "Alias: {0}\n", alias); // </Snippet3> Console.Write(msg); break; case "/useragent": // <Snippet4> // Get the first client target // in the collection. clientTarget = clientTargets[0]; // Get he user agent. userAgent = clientTarget.UserAgent; msg = String.Format( "User Agent: {0}\n", userAgent); // </Snippet4> Console.Write(msg); break; case "/add": // <Snippet5> // Create a new ClientTarget object. clientTarget = new ClientTarget( "my alias", "My User Agent"); // Add the clientTarget to // the collection. clientTargets.Add(clientTarget); // Update the configuration file. if (!clientTargetSection.IsReadOnly()) { configuration.Save(); } // </Snippet5> alias = clientTarget.Alias; userAgent = clientTarget.UserAgent; msg = String.Format( "Alias: {0}\nUser Agent: {1}\n", alias, userAgent); Console.Write(msg); break; case "/clear": // <Snippet6> // Clear the client target collection. clientTargets.Clear(); // Update the configuration file. if (!clientTargetSection.IsReadOnly()) { configuration.Save(); } // </Snippet6> break; case "/remove1": // <Snippet7> // Create a ClientTarget object. clientTarget = new ClientTarget( "my alias", "My User Agent"); // Remove it from the collection // (if exists). clientTargets.Remove(clientTarget); // Update the configuration file. if (!clientTargetSection.IsReadOnly()) { configuration.Save(); } // </Snippet7> alias = clientTarget.Alias; userAgent = clientTarget.UserAgent; msg = String.Format( "Alias: {0}\nUser Agent: {1}\n", alias, userAgent); Console.Write(msg); break; case "/remove2": // <Snippet8> // Remove the client target with the // specified alias from the collection // (if exists). clientTargets.Remove("my alias"); // Update the configuration file. if (!clientTargetSection.IsReadOnly()) { configuration.Save(); } // </Snippet8> break; case "/remove3": // <Snippet9> // Remove the client target at the // specified index from the collection. clientTargets.RemoveAt(0); // Update the configuration file. if (!clientTargetSection.IsReadOnly()) { configuration.Save(); } // </Snippet9> break; case "/all": StringBuilder allClientTargets = new StringBuilder(); foreach (ClientTarget clTarget in clientTargets) { alias = clTarget.Alias; userAgent = clTarget.UserAgent; msg = String.Format( "Alias: {0}\nUser Agent: {1}\n", alias, userAgent); allClientTargets.AppendLine(msg); } Console.Write(allClientTargets.ToString()); break; default: // Option is not allowed.. Console.Write("Input not allowed."); break; } } catch (ArgumentException e) { // Never display this. Use it for // debugging purposes. msg = e.ToString(); } }