Exemplo n.º 1
0
        void Request_ExtractValues(object sender, ExtractionEventArgs e)
        {
            RuleHelper.WhenAspNetResponse(e.Response, () =>
            {
                RuleHelper.NotAlreadyExtracted <ExtractHiddenFields>(e.Request.ExtractionRuleReferences, () =>
                {
                    // Extract all hidden fields so that they can be used in next async/sync postback
                    // Hidden fields like __EVENTVALIDATION, __VIEWSTATE changes after every async/sync
                    // postback. So, these fields need to be kept up-to-date to make subsequent async/sync
                    // postback
                    var extractionRule                  = new ExtractHiddenFields();
                    extractionRule.Required             = true;
                    extractionRule.HtmlDecode           = true;
                    extractionRule.ContextParameterName = "1";
                    extractionRule.Extract(sender, e);
                });

                // Extract all INPUT/SELECT elements so that they can be posted in (async)postback
                RuleHelper.NotAlreadyExtracted <ExtractFormElements>(e.Request.ExtractionRuleReferences, () =>
                {
                    new ExtractFormElements().Extract(sender, e);
                });

                // Extract all __doPostBack(...) so that the ID of the control can be used to make async
                // postbacks
                RuleHelper.NotAlreadyExtracted <ExtractPostbackNames>(e.Request.ExtractionRuleReferences, () =>
                {
                    new ExtractPostbackNames().Extract(sender, e);
                });

                // Extract all updatepanels so that during async postback, the updatepanel name can be derived
                RuleHelper.NotAlreadyExtracted <ExtractUpdatePanels>(e.Request.ExtractionRuleReferences, () =>
                {
                    new ExtractUpdatePanels().Extract(sender, e);
                });
            });
        }