Home > Articles

This chapter is from the book

ASP.NET Intrinsic Objects

ASP.NET provides intrinsic objects to enable low-level access to the Web application framework. With the help of these intrinsic objects you can work directly with the underlying HTTP streams, server, session, and application objects. The intrinsic objects can be accessed in a Web Form through the properties of the Page class. Table 3.1 lists the important intrinsic objects and the properties of the Page class to which they are mapped.

Table 3.1 - Intrinsic Objects and Their Mappings to the Page Class Properties

Intrinsic Object

Property of the Page Class

HttpRequest

Request

HttpResponse

Response

HttpServerUtility

Server

HttpApplicationState

Application

HttpSessionState

Session


I'll discuss the HttpRequest, HttpResponse, and HttpServerUtility objects in the following section. The other two objects, HttpApplicationState and HttpSessionState, are discussed later in this chapter in the section "State Management."

The HttpRequest Object

The HttpRequest object represents the incoming request from the client to the Web server. The request from the client can come in two ways—GET or POST. GET attaches the data with the URL whereas POST embeds the data within the HTTP request body.

NOTE

CurrentExecutionFilePath This property of the HttpRequest class returns the file path of the currently executing page. When using the server-side redirection methods such as Server.Execute() and Server.Transfer(), the FilePath property returns the path to the original page whereas the CurrentExecutionFilePath returns the path to the redirected page.

The requested page and its details are encapsulated in an HttpRequest object. The HttpRequest intrinsic object can be accessed by the Request property of the Page class. Tables 3.2 and 3.3 list the properties and methods of the HttpRequest class. Because the HttpRequest class provides information about the request sent by the client, all the properties are read-only except the Filter property.

Table 3.2 - Properties of HttpRequest Class

Property

Description

AcceptTypes

Specifies the MIME types that the client browser accepts.

ApplicationPath

Represents the application's virtual application root path on the server.

Browser

Provides access to the abilities and characteristics of the requesting browser.

ClientCertificate

Represents the certificate, if any, sent by the client for secure communications.

ContentEncoding

Represents the character encoding (such as UTF7 or ASCII) for the entity body.

ContentLength

Specifies the length in bytes of the request.

ContentType

Specifies the MIME type of the incoming request.

Cookies

Represents the cookies collection that is sent by the client to the server.

CurrentExecutionFilePath

Specifies the virtual path of the current executing page on the Web server.

FilePath

Specifies the virtual path of the file on the Web server.

Files

Represents the file collection that is posted by the client to the Web server.

Filter

Represents a stream that is applied as a filter on the incoming request.

Form

Specifies the contents of a form posted to the server.

Headers

Represents the HTTP headers passed in with the incoming request.

HttpMethod

Represents the method of the HTTP request. For example, GET, POST, or HEAD.

InputStream

Represents the stream that contains the incoming HTTP request body.

IsAuthenticated

Indicates whether the client has been authenticated to the site.

IsSecureConnection

Indicates whether the client connection is over a secure HTTPS connection.

Params

Represents the form, query string, cookies, and server variables collections of the current request.

Path

Specifies the virtual path of the current request along with additional path information.

PathInfo

Specifies the additional path information of the current request.

PhysicalApplicationPath

Specifies the physical file system path of the application's root directory.

PhysicalPath

Specifies the physical file system path of the current request on the Web server.

QueryString

Represents the querystring collection sent by the client to the Web server through the URL.

RawUrl

Specifies the URL portion of the current request, excluding the domain information.

RequestType

Represents the type of request (GET or POST) made by the client.

ServerVariables

Represents the collection of Web server variables.

TotalBytes

Represents the total number of bytes posted to the server in the current request.

Url

Specifies information about the current URL request.

UrlReferrer

Specifies the URL of the client's previous request that linked to the current URL.

UserAgent

Represents the browser being used by the client.

UserHostAddress

Represents the IP address of the requesting client's machine.

UserHostName

Represents the DNS name of the requesting client's machine.

UserLanguages

Specifies the languages preferred by the client's browser.


Table 3.3 - Methods of the HttpRequest Class

Method

Description

BinaryRead()

Reads specified number of bytes from the request stream. This method is provided for backward compatibility. You should use InputStream property instead.

MapImageCoordinates()

Returns the coordinates of a form image that is sent to the server in the current request.

MapPath()

Returns the physical file system path of the file for a specified virtual path of a Web server.

SaveAs()

Saves the current HTTP request into a disk file, with an option to include or exclude headers.


Step by Step 3.3 displays some of the path-related properties of the HttpRequest object and calls its MapPath() method to get the physical file system path for a specified virtual path. It also displays the header information sent by the client to the server when the StepByStep3-3.aspx page is requested from the server.

STEP BY STEP 3.3 - Using the HttpRequest Intrinsic Object

  1. Add a new Web Form to the project. Name the Web Form StepByStep3-3.aspx. Change the pageLayout property of DOCUMENT element to FlowLayout.

  2. Add a Label control (lblInfo) to the Web Form.

  3. Switch to the code view of the form. Add the following directives at the top of the code-behind file.

    Imports System.Text

    Imports System.Collections.Specialized

  4. Add the following code to the Page_Load() event handler:

    Private Sub Page_Load( _
     ByVal sender As System.Object, _
     ByVal e As System.EventArgs) Handles MyBase.Load
      Dim sbInfo As StringBuilder = New StringBuilder()
    
      ' Display some of the path related properties
      ' of the HttpRequest object
      sbInfo.Append("The Url of the ASPX page: " & _
       Request.Url.ToString & "<br>")
      sbInfo.Append("The Virtual File Path: " & _
       Request.FilePath & "<br>")
      sbInfo.Append("The Physical File Path: " & _
       Request.PhysicalPath & "<br>")
      sbInfo.Append("The Application Path: " & _
       Request.ApplicationPath & "<br>")
      sbInfo.Append( _
       "The Physical Application Path: " & _
       Request.PhysicalApplicationPath & "<br>")
    
    ' Display the request header
      sbInfo.Append("Request Header:")
      sbInfo.Append("<br>")
      Dim nvcHeaders As NameValueCollection = _
       Request.Headers
      Dim astrKeys() As String = nvcHeaders.AllKeys
      ' Iterate through all header keys
      ' and display their values
      Dim strKey As String
      For Each strKey In astrKeys
        sbInfo.Append(strKey & ": " & _
          nvcHeaders(strKey).ToString())
        sbInfo.Append("<br>")
      Next
      ' Call MapPath() method to find the physical path
      ' of the StepByStep3-3.aspx file
      sbInfo.Append( _
       "The physical path of StepByStep3-3.aspx: ")
      sbInfo.Append(Request.MapPath( _
       "StepByStep3-3.aspx"))
    lblInfo.Text = sbInfo.ToString()

    End Sub

  5. Set StepByStep3-3.aspx as the start page for the project.

  6. Run the project. You should see the Web Form displaying the properties for the current request as shown in Figure 3.3.

Figure 3.3Figure 3.3 The Request property of the Page class returns an HttpRequest object that gives access to the HTTP values sent by a client during a Web request.

Some of the properties of the HttpRequest object such as Form, QueryString, and Headers return a NameValueCollection containing a collection of key-value pairs of their contents. Step by Step 3.3 shows how to iterate through this collection by iterating through the keys of the Headers collection and displaying the key and value of each header sent by the client.

The HttpResponse Object

The HttpResponse object represents the response sent back to the client from the Web server. It contains properties and methods that provide direct access to the response stream and allow you to set its behavior and operations. The Response property of the Page class provides access to the HttpResponse object. Tables 3.4 and 3.5 list the properties and the methods of the HttpResponse class.

Table 3.4 - Properties of the HttpResponse Class

Property

Description

Buffer

Indicates whether the output to response stream needs to be buffered and sent to the client after the entire page is processed. This property is provided for backward compatibility. The BufferOutput property should be used instead.

BufferOutput

Indicates whether the output to response stream needs to be buffered and then sent to the client after the entire page is processed. The default is True.

Cache

Represents the caching policy of page. The policy controls where caching can be done, the expiration time, and so on.

CacheControl

Specifies where the caching should be done. The possible values Public and Private.

Charset

Represents the character set of the output stream. If set to null, the content-type header will be suppressed.

ContentEncoding

Represents the character set of the response output stream.

ContentType

Represents the MIME type for the outgoing response stream such as text/html or text/xml.

Cookies

Represents the cookies collection that is sent by the server to the client.

Expires

Indicates the number of minutes until which the page is cached by the client browser.

ExpiresAbsolute

Indicates the specific date and time until which the page is cached by the client browser.

Filter

Represents a stream that is applied as a filter to the outgoing response.

IsClientConnected

Indicates whether the client is connected to the server. This property is very helpful when running a lengthy request.

Output

Allows writing text output to the outgoing response.

OutputStream

Allows writing binary output to the outgoing response.

Status

Specifies the status of the HTTP output that is being sent to the client. This property returns both the status code and the text description of the status. For example, 200 OK.

StatusCode

Specifies the numeric representation of the status of the HTTP output sent to the client. For example, 200 or 302.

StatusDescription

Specifies the text representation of the status of the HTTP output sent to the client. For example, OK or Redirect.

SupressContent

Indicates whether the content in the page should be suppressed and not sent to the client.


NOTE

Caching Policy The properties CacheControl, Expires, and ExpiresAbsolute are provided for backward compatibility. You should instead use the HttpCachePolicy object's methods to set caching policy. This object is returned by the Cache property. Setting caching policy is discussed in Chapter 15, "Configuring a Web Application."

Table 3.5 - Methods of the HttpResponse Class

Method

Description

AddCacheItemDependencies()

Makes the validity of the cache item dependent on the other items in the cache.

AddCacheItemDependency()

Makes the validity of the cache item dependent on another item in the cache.

AddFileDependencies()

Adds group of files to the collection on which the current response depends.

AddFileDependency()

Adds a file to the collection on which the current response depends.

AddHeader()

Adds an HTTP header to the outgoing response stream. This method is provided for backward compatibility with ASP.

AppendHeader()

Adds an HTTP header to the outgoing response stream.

AppendToLog()

Adds information to the IIS Web log file.

BinaryWrite()

Allows writing binary data such as an image file, PDF file to the response stream.

Clear()

Clears the entire response stream buffer, including its contents and headers.

ClearContent()

Clears the entire content portion of the response stream buffer.

ClearHeaders()

Clears the headers portion of the response stream buffer.

Close()

Closes the response object and the socket connection to the client.

End()

Stops the execution of the page after flushing the output buffer to the client.

Flush()

Flushes the currently buffered content out to the client.

Pics()

Adds a PICS-label HTTP header to the outgoing response.

Redirect()

Redirects the client browser to any URL. This method requires an additional round trip to the browser.

RemoveOutputCacheItem()

Removes all cache items for the path specified.

Write()

Writes output to the outgoing response.

WriteFile()

Writes file to the outgoing response.


Step by Step 3.4 shows the use of the HttpResponse object methods and properties to create a response that displays the File Download dialog box and allows the user to download a text file from the Web server to the client's machine.

STEP BY STEP 3.4 - Using the HttpResponse Intrinsic Object

  1. Add a new Web Form to the project. Name the Web Form StepByStep3-4.aspx. Change the pageLayout property of DOCUMENT element to FlowLayout.

  2. Add a text file to the project and add some random data to the file. Name it Summary.txt.

  3. Add a LinkButton control (lbtnDownload) to the Web Form with its Text property set to Download Summary.txt.

  4. Double-click the lbtnDownload control and add the following code to the Click event handler:

    Private Sub lbtnDownload_Click( _
     ByVal sender As System.Object, _
     ByVal e As System.EventArgs) _
     Handles lbtnDownload.Click
      ' Append a Header to the response to force a
      ' Download of the Summary.txt as an attachment
      Response.AppendHeader("Content-Disposition", _
       "Attachment;FileName=" & "Summary.txt")
    
      ' Set the Content type to text/plain
      ' As the download file is a TXT file
      Response.ContentType = "text/plain"
    
      ' Write the file to the Response
      Response.WriteFile("Summary.txt")
    
      ' Stop the further execution of the page
      Response.End()

    End Sub

  5. Set StepByStep3-4.aspx as the start page for the project.

  6. Run the project. Click the link button. You should see a File Download dialog box as shown in the Figure 3.4. After the download, open the file to verify that the file has been successfully downloaded.

Figure 3.4Figure 3.4 The File Download dialog box provides the interface to download a file from the Web server.

The HttpServerUtility Object

The HttpServerUtility object contains utility methods and properties to work with the Server object. It contains methods to enable HTML/URL encoding and decoding, execute or transfer to an ASPX page, create COM components, and so on. The Server property of the Page class provides access to the HttpServerUtility object. Tables 3.6 and 3.7 list the properties and methods of the of the HttpServerUtility class.

Table 3.6 - Properties of the HttpServerUtility Class

Property

Description

MachineName

Returns the name of the server that hosts the Web application.

ScriptTimeout

Indicates the number of seconds that are allowed to elapse to process the request before the timeout error is sent to the client.


Table 3.7 - Methods of the HttpServerUtility Class

Method

Description

ClearError()

Clears the last exception from the memory. This method is discussed in Chapter 4, "Error Handling for the User Interface."

CreateObject()

Creates a COM object on the server. This method is discussed in Chapter 10, "Working with Legacy Code."

CreateObjectFromClsid()

Creates a COM object on the server identified by a specified class identifier (CLSID).

Execute()

Executes an ASPX page within the current requested page. This method is discussed later in the chapter.

GetLastError()

Returns the last exception that occurred on the Web server. This method is discussed in Chapter 4.

HtmlDecode()

Enables decoding a string that has been previously HTML encoded for sending over HTTP to a browser.

HtmlEncode()

Enables HTML encoding a string for sending over HTTP to a browser.

MapPath()

Returns the physical path for a specified virtual path for a Web server.

Transfer()

Allows the transfer of ASPX page execution from the current page to another ASPX page on the same Web server. This method is discussed later in the chapter.

UrlDecode()

Enables decoding a URL string that has been previously HTML encoded for sending over HTTP to a browser.

UrlEncode()

Enables encoding a URL string for safe transmission over HTTP.

UrlPathEncode()

Enables encoding of a path portion of the URL string for safe transmission over HTTP.


STEP BY STEP 3.5 - Using the HttpServerUtility Object

  1. Add a new Web Form to the project. Name the Web Form StepByStep3-5.aspx. Change the pageLayout property of the DOCUMENT element to FlowLayout.

  2. Add the following code to the Page_Load() event handler:

    Private Sub Page_Load(ByVal sender As System.Object, _
     ByVal e As System.EventArgs) Handles MyBase.Load
      ' Write to the response
      ' using the Server.HtmlEncode() method
      ' so that the browser does not parse
      ' the text into HTML elements
      Response.Write(Server.HtmlEncode( _
       "To include a title in the title bar, " & _
       "enclose your chosen title between the " & _
       "pairs of the <title>...</title> element " & _
       "in the HTML <head> element. "))
    
      Response.Write(Server.HtmlEncode( _
       "For example, " & _
       "<title> Using the HtmlEncode()" & _
       "method </title>"))

    End Sub

  3. Set StepByStep3-5.aspx as the start page for the project.

  4. Run the project. You should see that the browser does not parse the HTML <title> elements written to the response, as shown in Figure 3.5. This is because of the use of HtmlEncode() method of the HttpServerUtility class.

Figure 3.5Figure 3.5 The HtmlEncode() method of the HttpServerUtility object HTML encodes a string to be displayed in the browser.

I will discuss various other methods of the HttpServerUtility object over the course of this book.

Guided Practice Exercise 3.1

Several Web sites collect statistics about the browsers, operating systems, and other settings on their users' computers. This data helps the Web site in customizing content to target a large number of users. A common requirement for Web applications is to find out the browser version of their users and then serve them files that are optimized for that particular browser version.

In this exercise, you are required to create a Web Form that displays the following information about the client browser: the browser name and version, the platform of the client's computer, the CLR version installed, JavaScript support, ECMA version, MS DOM version, and the W3C XML DOM version supported by the browser.

You can use the Request.Browser property to get access to the HttpBrowserCapabilities object that provides various properties to gather information on the capabilities of the client's browser.

How would you create a Web Form that allows the Web page to get information about the browser?

You should try working through this problem on your own first. If you are stuck, or if you'd like to see one possible solution, follow these steps:

  1. Open the project 315C03. Add a new Web Form named GuidedPracticeExercise3-1 to the project. Change the pageLayout property of the DOCUMENT element to FlowLayout.

  2. Add a Label control (lblInfo) to the Web Form.

  3. Switch to the code view of the form. Add the following Imports directive at the top of the code-behind file.

    Imports System.Text
  4. Add the following code to the Page_Load() event handler:

    Private Sub Page_Load(ByVal sender As System.Object, _
     ByVal e As System.EventArgs) Handles MyBase.Load
      Dim sbText As StringBuilder = New StringBuilder()
    
      ' Get the reference to the
      ' HttpBrowserCapabilities object
      Dim browser As HttpBrowserCapabilities = _
       Request.Browser
    
      ' Display the properties of the
      ' HttpBrowserCapabilities Class
      sbText.AppendFormat("Browser : " & _
       browser.Browser & "<br>")
      sbText.AppendFormat("Browser Version: " & _
       browser.Version & "<br>")
      sbText.AppendFormat("Client's Platform: " & _
       browser.Platform & "<br>")
      sbText.AppendFormat(".NET CLR Version: " & _
       browser.ClrVersion.ToString & "<br>")
      sbText.AppendFormat("ECMA Script Version: " & _
       browser.EcmaScriptVersion.ToString & "<br>")
      sbText.AppendFormat("JavaScript Support: " & _
       browser.JavaScript & "<br>")
      sbText.AppendFormat( _
       "Microsoft HTML Document " & _
       "Object Model Version: " & _
       browser.MSDomVersion.ToString & "<br>")
      sbText.AppendFormat( _
       "World Wide Web (W3C) " & _
       "XML Document Object Model " & _
       "Version: " & _
       browser.W3CDomVersion.ToString & "<br>")
    
      lblInfo.Text = sbText.ToString()
    End Sub
  5. Set GuidedPracticeExercise3_1.aspx as the start page for the project.

  6. Run the project. You should see the Web Form displaying the properties of the browser as shown in Figure 3.6.

Figure 3.6Figure 3.6 The HttpBrowserCapabilities object provides access to the capabilities of the client's browser.

If you have difficulty following this exercise, review the section "The HttpRequest Object" earlier in this Appendix And perform Step by Step 3.3. After doing this review, try this exercise again.

Review Break

  • Web applications are disconnected in nature. That is, the values of a page's variables and controls are not preserved across the page requests.

  • You can use the Page.IsPostBack property to determine whether a page is being loaded for the first time or in response to a postback operation.

  • ASP.NET has a feature called smart navigation that can greatly enhance the user experience of a Web page for users of Internet Explorer 5.0 or higher browsers.

  • ASP.NET provides intrinsic objects to enable low-level access to the Web application framework. With the help of these intrinsic objects you can work directly with the underlying HTTP request, HTTP response, server, session, and application objects.

Pearson IT Certification Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from Pearson IT Certification and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about Pearson IT Certification products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites; develop new products and services; conduct educational research; and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by Adobe Press. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.pearsonitcertification.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020