Telerik Reporting

When using HTTP as the transport, security is provided by a Secure Sockets Layer (SSL) implementation. SSL is widely used on the Internet to authenticate a service to a client, and then to provide confidentiality (encryption) to the channel. This topic explains how to enable SSL for the Telerik Reporting WCF service.

The solution is to configure corresponding bindings to use Transport security mode. Use the bindingConfiguration property inside your endpoint definition to point to your custom bindings.

The entire HTTPS-enabled system.serviceModel section of web.config is below:

CopyXML
<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBindingConfig">
                    <security mode="Transport"/>
                </binding>
            </basicHttpBinding>
            <webHttpBinding>
                <binding name="WebHttpBindingConfig">
                    <security mode="Transport"/>
                </binding>
            </webHttpBinding>
        </bindings>

        <services>
            <service name="Telerik.Reporting.Service.ReportService"
                        behaviorConfiguration="ReportServiceBehavior">

                <endpoint address=""
                            binding="basicHttpBinding"
                            bindingConfiguration="BasicHttpBindingConfig"
                            contract="Telerik.Reporting.Service.IReportService">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>

                <endpoint address="resources"
                            binding="webHttpBinding"
                            bindingConfiguration="WebHttpBindingConfig"
                            behaviorConfiguration="WebBehavior"
                            contract="Telerik.Reporting.Service.IResourceService"/>

                <endpoint address="mex"
                            binding="mexHttpBinding"
                            contract="IMetadataExchange" />
            </service>
        </services>

        <behaviors>
            <serviceBehaviors>
                <behavior name="ReportServiceBehavior">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="false" />
                </behavior>
            </serviceBehaviors>

            <endpointBehaviors>
                <behavior name="WebBehavior">
                    <webHttp />
                </behavior>
            </endpointBehaviors>

        </behaviors>
    </system.serviceModel>

Related topics: