Exemplo n.º 1
0
        public static bool EnableLegacyRendering()
        {
            Configuration           cfg          = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
            XhtmlConformanceSection xhtmlSection = (XhtmlConformanceSection)cfg.GetSection("system.web/xhtmlConformance");

            return(xhtmlSection.Mode == XhtmlConformanceMode.Legacy);
        }
Exemplo n.º 2
0
        protected internal override void Render(HtmlTextWriter writer)
        {
            XhtmlConformanceSection xhtml = WebConfigurationManager.GetSection("system.web/xhtmlConformance") as XhtmlConformanceSection;

            if (xhtml != null && xhtml.Mode == XhtmlConformanceMode.Legacy)
            {
                base.Render(writer);
            }
            else
            {
                writer.WriteBeginTag(TagName);
                RenderAttributes(writer);
                writer.Write("/>");
            }
        }
Exemplo n.º 3
0
        public static bool IsXmlConformResponseTextRequired(HttpContextBase context)
        {
            ArgumentUtility.CheckNotNull("context", context);

            XhtmlConformanceSection xhtmlConformanceSection = (XhtmlConformanceSection)WebConfigurationManager.GetSection("system.web/xhtmlConformance");

            Assertion.IsNotNull(xhtmlConformanceSection, "Config section 'system.web/xhtmlConformance' was not found.");

            if (xhtmlConformanceSection.Mode != XhtmlConformanceMode.Legacy)
            {
                return(true);
            }

            return(IsResponseTextXml(context) || IsResponseTextXHtml(context));
        }
Exemplo n.º 4
0
        protected override void RenderAttributes(HtmlTextWriter w)
        {
            /* Need to always render: method, action and id
             */

            string      action;
            string      customAction = Attributes ["action"];
            Page        page         = Page;
            HttpRequest req          = page != null ? page.RequestInternal : null;

#if !TARGET_J2EE
            if (String.IsNullOrEmpty(customAction))
            {
                string file_path    = req != null ? req.ClientFilePath : null;
                string current_path = req != null ? req.CurrentExecutionFilePath : null;

                if (file_path == null)
                {
                    action = Action;
                }
                else if (file_path == current_path)
                {
                    // Just the filename will do
                    action = UrlUtils.GetFile(file_path);
                }
                else
                {
                    // Fun. We need to make cookieless sessions work, so no
                    // absolute paths here.
                    bool cookieless;
                    SessionStateSection sec = WebConfigurationManager.GetSection("system.web/sessionState") as SessionStateSection;
                    cookieless = sec != null ? sec.Cookieless == HttpCookieMode.UseUri: false;
                    string appVPath    = HttpRuntime.AppDomainAppVirtualPath;
                    int    appVPathLen = appVPath.Length;

                    if (appVPathLen > 1)
                    {
                        if (cookieless)
                        {
                            if (StrUtils.StartsWith(file_path, appVPath, true))
                            {
                                file_path = file_path.Substring(appVPathLen);
                            }
                        }
                        else if (StrUtils.StartsWith(current_path, appVPath, true))
                        {
                            current_path = current_path.Substring(appVPathLen);
                        }
                    }

                    if (cookieless)
                    {
                        Uri current_uri = new Uri("http://host" + current_path);
                        Uri fp_uri      = new Uri("http://host" + file_path);
                        action = fp_uri.MakeRelative(current_uri);
                    }
                    else
                    {
                        action = current_path;
                    }
                }
            }
            else
            {
                action = customAction;
            }
            if (req != null)
            {
                action += req.QueryStringRaw;
            }
#else
            // Allow the page to transform action to a portlet action url
            if (String.IsNullOrEmpty(customAction))
            {
                string queryString = req.QueryStringRaw;
                action = CreateActionUrl(VirtualPathUtility.ToAppRelative(req.CurrentExecutionFilePath) +
                                         (string.IsNullOrEmpty(queryString) ? string.Empty : "?" + queryString));
            }
            else
            {
                action = customAction;
            }
#endif
            if (req != null)
            {
                XhtmlConformanceSection xhtml = WebConfigurationManager.GetSection("system.web/xhtmlConformance") as XhtmlConformanceSection;
                if (xhtml == null || xhtml.Mode != XhtmlConformanceMode.Strict)
#if NET_4_0
                { if (RenderingCompatibilityLessThan40)
#endif
                {   // LAMESPEC: MSDN says the 'name' attribute is rendered only in
                    // Legacy mode, this is not true.
                    w.WriteAttribute("name", Name);
                }
            }

            w.WriteAttribute("method", Method);
            if (String.IsNullOrEmpty(customAction))
            {
                w.WriteAttribute("action", action, true);
            }

            /*
             * This is a hack that guarantees the ID is set properly for HtmlControl to
             * render it later on. As ugly as it is, we use it here because of the way
             * the ID, ClientID and UniqueID properties work internally in our Control
             * code.
             *
             * Fixes bug #82596
             */
            if (ID == null)
            {
#pragma warning disable 219
                string client = ClientID;
#pragma warning restore 219
            }

            string submit = page != null?page.GetSubmitStatements() : null;

            if (!String.IsNullOrEmpty(submit))
            {
                Attributes.Remove("onsubmit");
                w.WriteAttribute("onsubmit", submit);
            }

            /* enctype and target should not be written if
             * they are empty
             */
            string enctype = Enctype;
            if (!String.IsNullOrEmpty(enctype))
            {
                w.WriteAttribute("enctype", enctype);
            }

            string target = Target;
            if (!String.IsNullOrEmpty(target))
            {
                w.WriteAttribute("target", target);
            }

            string defaultbutton = DefaultButton;
            if (!String.IsNullOrEmpty(defaultbutton))
            {
                Control c = FindControl(defaultbutton);

                if (c == null || !(c is IButtonControl))
                    throw new InvalidOperationException(String.Format("The DefaultButton of '{0}' must be the ID of a control of type IButtonControl.",
                                                                      ID)); }

                if (page != null && DetermineRenderUplevel())
                {
                    w.WriteAttribute(
                        "onkeypress",
                        "javascript:return " + page.WebFormScriptReference + ".WebForm_FireDefaultButton(event, '" + c.ClientID + "')");
                }
            }

            /* Now remove them from the hash so the base
             * RenderAttributes can do all the rest
             */
            Attributes.Remove("method");
            Attributes.Remove("enctype");
            Attributes.Remove("target");

            base.RenderAttributes(w);
        }
Exemplo n.º 5
0
        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();
            }
        }
Exemplo n.º 6
0
        protected override void RenderAttributes(HtmlTextWriter w)
        {
            /* Need to always render: method, action and id
             */
            /* The name attribute is rendered _only_ if we're not in
             * 2.0 mode or if the xhtml conformance mode is set to
             * Legacy for 2.0 according to http://msdn2.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlform.name.aspx
             */

            string action;

#if NET_2_0
            string customAction = Attributes ["action"];
#endif
            Page        p   = Page;
            HttpRequest req = p != null ? p.Request : null;
            if (req == null)
            {
                throw new HttpException("No current request, cannot continue rendering.");
            }
#if !TARGET_J2EE
#if NET_2_0
            if (String.IsNullOrEmpty(customAction))
            {
#endif
            string file_path    = req.ClientFilePath;
            string current_path = req.CurrentExecutionFilePath;
            if (file_path == current_path)
            {
                // Just the filename will do
                action = UrlUtils.GetFile(file_path);
            }
            else
            {
                // Fun. We need to make cookieless sessions work, so no
                // absolute paths here.
                bool cookieless;

#if NET_2_0
                SessionStateSection sec = WebConfigurationManager.GetSection("system.web/sessionState") as SessionStateSection;
                cookieless = sec != null ? sec.Cookieless == HttpCookieMode.UseUri: false;
#else
                SessionConfig sec = HttpContext.GetAppConfig("system.web/sessionState") as SessionConfig;
                cookieless = sec != null ? sec.CookieLess : false;
#endif
                string appVPath    = HttpRuntime.AppDomainAppVirtualPath;
                int    appVPathLen = appVPath.Length;

                if (appVPathLen > 1)
                {
                    if (cookieless)
                    {
                        if (StrUtils.StartsWith(file_path, appVPath, true))
                        {
                            file_path = file_path.Substring(appVPathLen);
                        }
                    }
                    else if (StrUtils.StartsWith(current_path, appVPath, true))
                    {
                        current_path = current_path.Substring(appVPathLen);
                    }
                }

                if (cookieless)
                {
                    Uri current_uri = new Uri("http://host" + current_path);
                    Uri fp_uri      = new Uri("http://host" + file_path);
                    action = fp_uri.MakeRelative(current_uri);
                }
                else
                {
                    action = current_path;
                }
            }
#if NET_2_0
        }

        else
        {
            action = customAction;
        }
#endif
            action += req.QueryStringRaw;
#else
            // Allow the page to transform action to a portlet action url
            if (String.IsNullOrEmpty(customAction))
            {
                string queryString = req.QueryStringRaw;
                action = CreateActionUrl(VirtualPathUtility.ToAppRelative(req.CurrentExecutionFilePath) +
                                         (string.IsNullOrEmpty(queryString) ? string.Empty : "?" + queryString));
            }
            else
            {
                action = customAction;
            }
#endif

#if NET_2_0
            XhtmlConformanceSection xhtml = WebConfigurationManager.GetSection("system.web/xhtmlConformance") as
                                            XhtmlConformanceSection;

            if (xhtml != null && xhtml.Mode == XhtmlConformanceMode.Legacy)
#endif
            w.WriteAttribute("name", Name);

            w.WriteAttribute("method", Method);
#if NET_2_0
            if (String.IsNullOrEmpty(customAction))
#endif
            w.WriteAttribute("action", action, true);

            /*
             * This is a hack that guarantees the ID is set properly for HtmlControl to
             * render it later on. As ugly as it is, we use it here because of the way
             * the ID, ClientID and UniqueID properties work internally in our Control
             * code.
             *
             * Fixes bug #82596
             */
            if (ID == null)
            {
#pragma warning disable 219
                string client = ClientID;
#pragma warning restore 219
            }

            string submit = Page.GetSubmitStatements();
            if (submit != null && submit != "")
            {
                Attributes.Remove("onsubmit");
                w.WriteAttribute("onsubmit", submit);
            }

            /* enctype and target should not be written if
             * they are empty
             */
            string enctype = Enctype;
            if (enctype != null && enctype != "")
            {
                w.WriteAttribute("enctype", enctype);
            }

            string target = Target;
            if (target != null && target != "")
            {
                w.WriteAttribute("target", target);
            }

#if NET_2_0
            string defaultbutton = DefaultButton;
            if (!String.IsNullOrEmpty(defaultbutton))
            {
                Control c = FindControl(defaultbutton);

                if (c == null || !(c is IButtonControl))
                {
                    throw new InvalidOperationException(String.Format("The DefaultButton of '{0}' must be the ID of a control of type IButtonControl.",
                                                                      ID));
                }

                if (DetermineRenderUplevel())
                {
                    w.WriteAttribute(
                        "onkeypress",
                        "javascript:return " + Page.WebFormScriptReference + ".WebForm_FireDefaultButton(event, '" + c.ClientID + "')");
                }
            }
#endif

            /* Now remove them from the hash so the base
             * RenderAttributes can do all the rest
             */
            Attributes.Remove("method");
            Attributes.Remove("enctype");
            Attributes.Remove("target");

            base.RenderAttributes(w);
        }