LogoLogo
WinForms to WebPowerBuilder to .NETPowerBuilder to Java
  • WebMAP Documentation | Mobilize.Net
  • WinForms
    • Introduction
    • Getting Started
    • Conversion Process
    • Post-Conversion
    • Extend or Modify the Converted Application
      • NoWebMap Forms Winforms
        • How to add a new Form
        • Adding the created form to the migrated App
        • Interacting with the application data
        • Call the custom API
        • Interaction between the no webmap added Form and the WebMap components
      • Adding a component
      • Adding a component dynamically
      • Add a new control model
      • Switching CSS theme
      • Adding new window
      • Conversion Configuration
        • WebMAP configuration file
        • Stub Filter
      • Adding Non-WebMap Angular Forms
      • Adding FrontEnd Handler to a ToolStripMenuItem
      • Changing ToolStripButton icons
      • Adding new items to existing toolbar
      • Adding FrontEnd element properties and JS listeners
      • Adding FrontEnd output handlers
      • Access FrontEnd components
      • Create custom components based on existing WebMap Component
      • Override FrontEnd methods
    • Assessment Mode
    • Errors and Troubleshooting
      • How to resolve broken reference problems with VBUC
    • Portability
    • Glossary
    • Release Notes
    • Internal Demos
    • Known Issues
    • WinForms DCP
  • WebForms
    • Introduction
    • Overview
    • Desktop Compatibility Platform (DCP)
      • Pages and Master Pages
      • GridView and DataList data synchronization
      • HTTP objects
    • Post-Conversion
    • Extend or Modify the Converted Application
      • Adding FrontEnd validator
      • Adding Page
      • Adding MasterPage
    • Designer classes on WebForms Conversion Tool
    • Errors and Troubleshooting
      • How fix Solution when have been added website from filesystem without project file
    • Release Notes
  • PowerBuilder to .Net
    • Introduction
    • Getting Started
      • Conversion Tool
    • Desktop Compatibility Platform (DCP)
      • Data Manager
    • Reports
      • Report Rendering in Modernized Code
      • ReportWatcher Service Configuration
      • Data Manager to RDL Conversion
      • Reporting Service Internals
      • Troubleshooting
  • PowerBuilder to Java
    • Introduction
    • Getting started
    • Post-Conversion
      • Setup PBJava Environment
      • Architecture
      • App Start
    • Glossary
    • Errors
    • Glossary
    • FAQ
      • How to create a new Control
      • How to create a new Screen
      • What is the Mobilize.WebMAP.CoreServices.All?
      • What is the DesignerAttribute?
      • What is the InterceptedAttribute?
      • What is the InterceptedAttribute?
      • What is the ObservableAttribute?
      • What is the Mobilize.Weaving.WebMAPExtensions.All?
  • General
    • FrontEnd
      • Documentation
        • Webforms Angular Components
          • Web Components
            • Base Components
              • BaseValidator Component
            • KendoUI Components
              • CompareValidator
              • CustomValidator
              • RegularExpressionValidator
              • RequiredFieldValidator
              • ValidationSummary
          • Directives
          • AJAX Web Components
            • AjaxCalendar
            • AjaxModalPopupExtender
          • Ajax Interaction Services
        • Client Core
          • WebMap's Client Core
        • Angular Client
          • Introduction
          • WebMap Service
          • WebMap Interceptor Service
        • Base Components
          • Introduction
          • Components
            • Container
            • Control
            • ControlContainer
            • FormsContainer
            • Loading
            • Stub
        • Winforms Angular Components
          • Web Components
            • Base Components
              • Control Component
              • Form Container
              • Grid Component
              • Style
            • KendoUI Components
              • AdoDataControl
              • Button
              • C1TrueDBGrid
              • CheckBox
              • CheckedListBox
              • ComboBox
              • ContextMenuStrip
              • DataGridView
              • DataGridViewFlex
              • DateTimePicker
              • FileDialog
              • GroupBox
              • Label
              • ListBox
              • ListView
              • MaskedTextBox
              • MessageBox
              • NumericUpDown
              • Panel
              • PictureBox
              • PrintDialog
              • ProgressBar
              • RadioButton
              • RichTextBox
              • StatusStrip
              • Stup
              • TabControl
              • TabPage
              • TextBox
              • Timer
              • ToolStrip
              • TreeView
              • WebBrowser
              • Window
            • JQuery Web Components
          • WebMap FrontEnd Architecture
          • Migrated Structure
          • Setup
            • Front-End setup and compilation
            • Components Manual
            • Browser Support
            • Unit Test Manual
            • Development Process
            • Setup AOT/JIT Compilation
          • Decorators
            • Server Event
          • Conventions
            • Application Structure and NgModules
            • Coding
            • Components
            • Data Service
            • Directives
            • Lifecycle hooks
            • Names
            • Services
        • PowerBuilder Kendo Components
          • Base Components
            • base-component
            • column-control
            • controlcontainer
          • Data Manager Componets
            • base-data-manager
            • data-manager-control
            • data-manager-control-base
            • dw-checkbox
            • dw-column
            • dw-complexNumericMaskComponent
            • dw-compute
            • dw-date-time-edit-mask
            • dw-dropdowndatawindow
            • dw-edit
            • dw-edit-mask
            • dw-radio-button
            • dw-simple-numeric-edit-mask
            • dw-string-edit-mask
            • dw-time-edit-mask
          • Window Components
            • basemask
            • graphics
            • w-checkbox
            • w-command-button
            • w-complex-numeric-mask
            • w-date-time-edit-mask
            • w-dropdownlistbox
            • w-group-box
            • w-line
            • w-listbox
            • w-maskedtextbox
            • w-mdiclient
            • w-menu
            • w-multiline
            • w-picture
            • w-picture
            • w-radiobutton
            • w-rectangle
            • w-simple-numeric-edit-mask
            • w-single-line-edit
            • w-statictext
            • w-string-edit-mask
            • w-time-edit-mask
            • w-toolbar
            • w-toolbaritem
            • w-user-object
            • w-window
          • Services
            • DmInteractionService
          • DataManagerEvents
          • FocusManager guide
      • Api Documentation
        • WebMap Silverlight
        • WfNetC1Components
        • WebFormsComponents
      • Guides
        • Setup NPM package registry in the workspace
        • How to Setup WebMap Applications To Run Over SubDomains or WebApplications In IIS
        • Deploy several WebMap Apps in the same Server
        • Update to Angular 16
        • Appearance
          • How to change the CSS
          • How to override the style for a component
        • Component maintenance
          • How link WebMap package to the migrated Application
          • How to resolve broken reference problems with VBUC
          • How to test a local WebMap Components package
          • How to add a new component in a migrated application
          • How to update a component
          • Dynamic Control Support
          • How to add new set of component with a different provider
          • How to test your component in the playground
          • Tools
        • WMLogger
          • How to use the WMLogger's instance
          • How to change log's level
          • How to add log tags
        • Integration test
        • Setup WebMap Applications to Run Front-End And Back-End In Separates Sites
          • Setup WebMap Applications To Run Front-End And Back-End In Separates Sites in Production (IIS)
        • Setup Migrated WebMap Applications To Run Front-end & Back-end In Separates Sites (Only development)
        • Initial Set Up
          • Software to Install
          • Necessary Repositories
      • Errors
      • Version Notes
        • Client Core
        • Angular Client
        • Web Base Components
        • Winforms Angular Components
        • PowerBuilder Kendo Components
      • Licenses
        • Client Core
        • Angular Client
        • Base Components
        • PB Kendo Components
        • WFNet Kendo Components
        • WebForms Components
        • WFNet Access Components
        • WFNet Janus Components
        • WFNet C1 Components
        • Silverlight wms-framework
        • Silverlight i-components
    • BackEnd
      • WebMAP From Scratch
      • Setup
      • DCP: Desktop Compatibly Platform
        • Overview
        • Library Bundles
          • Bundle Library
            • Create an Observable Object
          • Bundle DTO
            • DTO: Data Transfer Objects
              • Creating a DTO
            • Mappers
              • Create Mappers
            • Observable Wrappers
              • Create an Observable Wrapper
            • API/Controllers
      • Architecture
      • Weaving on WebMAP
      • Glossary
      • FAQ
        • How to create a new Control
        • How to create a new Screen
        • What is the Mobilize.WebMAP.CoreServices.All?
        • What is the DesignerAttribute?
        • What is the InterceptedAttribute?
        • What is the Mobilize.Extensions.Logging.RollingFile?
        • What is the ObservableAttribute?
        • What is the Mobilize.Weaving.WebMAPExtensions.All?
      • Licenses
        • PBNet DCP
        • WebFormsDCP
        • WFNet DCP
        • CoreServices
        • CoreServicesCommon
    • Request and Response
  • SCALABILITY
    • Introduction
    • Microservices
    • Containerizing a WebMap .Net Application with Docker
    • Vertical scalability
Powered by GitBook
On this page
  • Overview
  • Request Headers
  • HTTP Request
  • Http Response

Was this helpful?

  1. WebForms
  2. Desktop Compatibility Platform (DCP)

HTTP objects

PreviousGridView and DataList data synchronizationNextPost-Conversion

Last updated 2 years ago

Was this helpful?

WebMap Http Objects are a set of classes and objects created to wrap and adapt HTTP operations that were natively supported in WebForms. For this, firstly, we should understand a little about them.

You should have some knowledge in the following areas:

  • HTTP Objects

  • Cookies

Overview

This documentation is intended for someone who is familiar with programming concepts and ASP.NET Web Forms, but new to WebMap.

Request Headers

A request header is an HTTP header in charge of providing context information about the current request been executed. Its main purpose is to allow adapting the response from the server.

To access the request header data, we must first understand how the flow of a native application is established in the client-server process of Webforms and how these parameters are passed during communication.

The following diagram describes exactly the procedure described.

HTTP Request

When an user requests a page, it is compiled and executed on the server by WebMap, then it is wrapped and adapted from an AspNetCore.Http.HttpRequest object into a Mobilize.Web.UI.HttpRequest object which is accessible by the instance of page class in the converted code.

During the execution of an aspx.cs file, also known as a page, which is requested from the client, it receives within a context the current data of the request, response and the session state as composition relation properties of the instance of the page.

In code, the HttpRequest object stored in the Page.Request object which is used to access data from the request header. In this object you can find the Request.ServerVariables["Key"] property which queries the state of a header variable. The ServerVariables is a collection of strings that are only exposed through Request.

The following example demonstrates how to retrieve a query string value when loading a page.

[Observable]
public partial class DummyPage: Mobilize.Web.UI.Controls.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string referer = Request.ServerVariables["HTTP_REFERER"];
        return;
    }
}

Http Response

The following members of the HttpResponse class are supported on WebMap.

  • Buffer

  • Cache

  • Charset

  • ContentEncoding

  • ContentType

  • AddHeader()

  • AppendHeader()

  • BinaryWrite()

  • Clear()

  • ClearHeaders()

  • End()

  • Flush()

  • Redirect()

  • TransmitFile()

In code, the HttpResponse object stored in the Page.Response object which is used to access data from the response header. Members such as the Clear method can be accessed in WebMap just by using the Response.Clear(), which wraps the ASP HttpResponse.Clear method.

The following example sets the response's ContentType property to image/jpeg and also calls the Clear method to remove other content that might have been attached to the response previously.

Response.ContentType = "image/jpeg";
Response.Clear();

Another example of an use of this property is to specify a redirect action which will be in charge of loading a given page.

private void btnSubmitDeal_Click(object sender, EventArgs e)
{
    Response.Redirect("MADB.SubmitDeal");
}

Redirect from HttpResponse object cannot abort the current thread, so, we store only the last committed page to be redirected. At the end of the request, the “CommitContextCommand” should redirect to the last redirection.

Cookies

Setting a cookie and reading on WebMap is a simple procedure. In this way, you can create a cookie in the server and add it to the request:

Request.Cookies.Add(new Http.HttpCookie() {
    Name = "user_id",
    Value = "1",
})

Http.HttpCookie is a class that allows us to create a candidate object that will become a cookie and then added into cookies collection.

The following example demonstrates how to get a value user_id from a cookie.

var userId = Request.Cookies["user_id"];

Notice how the request is used when you what to read it back, it means that you are pulling information from a request made by the client.

Once the request is completed, the cookies are sent to the browser to later be used in a next request if they are requested.

Form Authentication cookie

To authenticate a user via cookie, you can use the FormsAuthentication.SetAuthCookie method to encrypt and register an authentication cookie. In this case, the cookie will be added into cookie collection of the current request.

This authentication method takes two parameters, the name of user that is being logged in, if whether or not the cookie will persistent or not.

The following example demonstrates how to register an authentication cookie.

FormsAuthentication.SetAuthCookie(“JSmith”, true);

Since ASP .NET Core does not support the Web.config file and the App.config file cannot load the System.Web namespace, all configuration options for the authentication cookie should be moved to the appSetting.config file.

In order to configure it, you should use the full qualified name as the key to the item of the app setting, see the following example:

<add key="system.web.authentication.forms.name" value=".ASPXFORMAUTH"/>
<add key="system.web.authentication.forms.timeout" value="2"/>

Current the conversion of the System.Web.Authentication.Forms.Name and the System.Web.Authentication.Forms.Timeout namespaces are the only ones supported as authentication options.

Similar to the request object, WebMap also wraps and adapts the AspNetCore.Http. object into the Mobilize.Web.UI.HttpResponse class in which its methods and properties are exposed through an adapter when page is loaded.

HttpResponse
Diagram

Description automatically generated