New to Telerik UI for ASP.NET Core? Download free 30-day trial

OLAP Cube Setup

You can set up the OLAP cube by using Microsoft SQL Server Analysis Services SSAS.

Installing SSAS

For more information on installing the SQL Server Analysis Services, refer to the MSDN tutorial.

Defining the OLAP Cube

For more information on creating, defining, and deploying the OLAP multidimensional cube, refer to the MSDN multidimensional modelling tutorial.

Configuring the HTTP Access

To enable the HTTP access to the SQL Server Analysis Services, use an MSMDPUMP.ddl ISAPI extension.

  • For more information on setting up the MSMDPUMP.ddl extension, refer to the MSDN HTTP access tutorial.
  • For an online accessible OLAP service for testing purposes, use https://demos.telerik.com/olap/msmdpump.dll. The URL does not open directly in the browser.

Enabling the Cross-Domain Access

If the cube will not be requested from different domains, skip this step.

To allow cross-domain requests to the OLAP service, enable the CORS behavior of your server. For more information on Cross-Origin Resource Sharing (CORS), refer to this link.

The following sections demonstrate how to enable CORS on an Internet Information Services (IIS) server. Cross-domain access requires you to configure the HTTP Response Headers and the OPTIONS method server response.

Configuring HTTP Response Headers

To configure HTTP Response Headers, specify the following requirements:

  • The domains that will perform the data requests.
  • An HTTP method through which the data will be transferred.
  • The HTTP headers that can be used in the requests.
  • The user credentials that will be required if an authenticated access is used.

The following example demonstrates the list of the HTTP Response Headers that show the settings which are required to enable the IIS CORS behavior.

Header Name

Value

Details

Access-Control-Allow-Headers Origin, Content-Type, Accept

These are the names of the fields which are required to be used in the actual request. The values have to be separated with commas.

  • Origin - This field provides information about the location from which the cross-origin or pre-flight request originates. This setting indicates to the server that the origin which performs the request is known.
  • Content-Type – This field indicates the content (MIME) type of the entity body that is sent to the recipient. The actual content type which is used in the communication between the OLAP service and the PivotDataSource is text or XML.
  • Accept – This field specifies the media types which are acceptable for the response.
Access-Control-Allow-Origin

The URI names that may access the resource. When an asterisk (*) is defined, all domains are allowed.

The names of the allowed domains have to be separated with a comma (,).

Access-Control-Request-Method POST

The name of the HTTP method that will be used in the actual request.

The XMLA protocol specifies an HTTP POST method.

Access-Control-Allow-Credentials (authenticated access only) true

The allowed values are:

  • true – Allows the supply of credentials with the request.
  • false – Disables the supply of credentials with the request. Equal to an altogether missing header.

Configuring the OPTIONS Method Server Response

To configure the OPTIONS method server response, specify the server response to the OPTIONS method requests. In IIS, configure the behavior of the OPTIONS method through the OPTIONSVerbHandler mapping settings.

The following example demonstrates the list of settings that you have to apply.

HTTP Handler Name Required Access Level Details
OPTIONSVerbHandler Read

Specifies that the handler requires READ access to the requests.

Accessing the Cube Securely

To implement a secured access to the OLAP instance, use either of the following approaches:

  • Use a proxy service which communicates with the cube on a secured protocol. This proxy has to support the XMLA protocol. In the Microsoft world, the solution is to use ADOMD.NET. For more information, refer to this forum thread.
  • Send the credentials with a request header even though the Username and Password will be visible on the client side (browser). For more information on passing credentials with request headers, refer to this StackOverflow discussion. You can define the required callbacks and settings directly in the transport.read object because they will be passed to the $.ajax method.

See Also

In this article