Overview
This article outlines the procedure to safely remove Telerik from Evoq/DNN platform.
Prerequisites
- Access to the SQL Server and DNN file structure.
- Access to a Super User account.
- DNN 9.8.0 (and above for the 9.x series of releases)
Note: The above requirement does not apply if you are using Evoq. You can remove Telerik dependencies from Evoq version 9.2 onwards.
Solution
Removing Telerik from Evoq/DNN Platform is an OPTIONAL setup step for DNN Platform, but HIGHLY RECOMMENDED due to known security vulnerabilities in Telerik DLLs present in older installations. In DNN 10.x, Telerik removal will be forced, and no longer optional. See 2021-01 (Critical) Optional Telerik Removal Suggested security bulletin for more information on this vulnerability.
Evoq has not been shipping Telerik DLLs for several years. However, older installations may still have them as Evoq previously shipped two modules 1) Digital Assets Management, 2) Document Viewer that used Telerik. Older versions of Evoq might have more modules that used Telerik. In addition, a site may have other 3rd party modules, skins, self-developed or purchased from the store that might be using Telerik.
An easy way to check for them is to look for any DLL file in the Bin folder starting with Telerik, e.g., Telerik.Web.UI.dll. Further, DNN’s open source community has a tool that can identify Telerik dependencies in an Evoq site. The Dnn Telerik Identifier is a free utility that needs to be installed on an Evoq site and added to a page. It will look at all the code currently running on your DNN Platform installation and identify any code or extensions that reference Telerik for subsequent removal by following these steps:
Steps
- Create a full backup of the site and database.
-
Go to Persona Bar > Settings > SQL Console and run the below queries:
UPDATE {databaseOwner}[{objectQualifier}Packages] SET IsSystemPackage = 0
WHERE Name LIKE '%digitalassets%'
OR Name LIKE '%document%'
OR (Name LIKE '%Telerik%' AND Name NOT LIKE '%TelerikIdentifier%')
OR Name LIKE '%deprecated%'
OR Name LIKE '%messaging%' - Go to Persona Bar > Settings > Servers, click the "Clear Cache" button to clear the whole server cache, then reload the page.
- (Optional) Navigate to
Manage > Site Assetsvia thePersona Barand remove theDigital Assets Management Promodule from the page. - (Optional) Navigate to
Manage > Global Assetsvia thePersona Barand remove theDigital Assets Management Promodule from the page. -
Go to Settings > Extensions > Installed Extensions.
- In the drop-down, select Libraries. Then, click on the trash icon beside
Digital Asset Management Pro. On the next page, select the option "Delete Files" and click on Delete. Then, click on the YES button. - In the drop-down, select Modules. Then, click on the trash icon beside
Digital Asset Management. On the next page, select the option "Delete Files" and click on Delete. Then, click on the YES button. - Then, on the same tab, click on the trash icon beside
Document Viewer. On the next page, select the option "Delete Files" and click on Delete. Then, click on the YES button. - Navigate to
Settings > Extensions (Modules)in thePersona Barand uninstall theMessagingextension if it exists. Do not confuse with theMessage Centerextension. Be sure to check theDelete Filescheckbox. - Navigate to
Settings > Extensions (Libraries)in thePersona Barand uninstall theDotNetNuke Telerik Web Componentsextension. Be sure to check theDelete Filescheckbox. - Navigate to
Settings > Extensions (Libraries)in thePersona Barand uninstall theDNN Deprecated Web Controls Libraryextension. Be sure to check theDelete Filescheckbox. - Navigate to
Settings > Extensions (Libraries)in thePersona Barand uninstall theDotNetNuke Deprecated Website Codebehind filesextension. Be sure to check theDelete Filescheckbox. - Navigate to
Settings > Extensions (Libraries)in thePersona Barand uninstall theDNN Security HotFix 2017.1extension. Be sure to check theDelete Filescheckbox. NOTE: Not all installations will have this extension installed. - In the drop-down, select Providers. Then, click on the trash icon beside "RadEditor Manager" if it exists. On the next page, select the option "Delete Files" and click on Delete. Then, click on the YES button.
- Remove the old extension packages for the Telerik components just removed.
In the folder '\App_Data\ExtensionPackages', remove all packages starting with:
Library_DotNetNuke.Telerik_*
Library_DotNetNuke.Web.Deprecated_*
Library_DotNetNuke.Website.Deprecated_*
DNNSecurityHotFix*
- In the drop-down, select Libraries. Then, click on the trash icon beside
- Open the
SiteUrls.configfile within the site root and search for "Telerik". Delete all rewrite rules,<RewriteRule>...</RewriteRule>, that reference it. -
Navigate to
Settings > SQL Consolevia thePersona Barand run the following script:DELETE FROM {databaseOwner}[{objectQualifier}PackageDependencies] WHERE (PackageName = 'DotNetNuke.Web.Deprecated') GO UPDATE {databaseOwner}[{objectQualifier}Lists] SET Text = 'DotNetNuke.Web.UI.WebControls.Internal.PropertyEditorControls.DateEditControl, DotNetNuke.Web' WHERE ListName = 'DataType' AND Value = 'Date' GO UPDATE {databaseOwner}[{objectQualifier}Lists] SET Text = 'DotNetNuke.Web.UI.WebControls.Internal.PropertyEditorControls.DateTimeEditControl, DotNetNuke.Web' WHERE ListName = 'DataType' AND Value = 'DateTime' GO - Open the
web.configfile within the site root and search for "Telerik". Delete any lines that reference it. In theweb.configfile, change the default value of htmlProvider to CKEditor and comment out the line that references Radeditor Provider. For your reference, below is how the code inweb.configshould look like:
<htmlEditor defaultProvider="DNNConnect.CKE">
<providers>
<clear />
<!-- <add name="DotNetNuke.RadEditorProvider" type="DotNetNuke.Providers.RadEditorProvider.EditorProvider, DotNetNuke.RadEditorProvider" providerPath="~/DesktopModules/Admin/RadEditorProvider" settingsControlPath="~/DesktopModules/Admin/RadEditorProvider/ProviderConfig.ascx" /> -->
<add name="DNNConnect.CKE" type="DNNConnect.CKEditorProvider.CKHtmlEditorProvider, DNNConnect.CKEditorProvider" providerPath="~/Providers/HtmlEditorProviders/DNNConnect.CKE/" settingsControlPath="~/Providers/HtmlEditorProviders/DNNConnect.CKE/Module/EditorConfigManager.ascx" />
</providers>
</htmlEditor> -
Clear the server cache by navigating to
Settings > Serversin thePersona Barand click theClear Cachebutton in the top-right corner. - Restart the application.
* This article references several steps from another article from the DNN Community: https://docs.
Priyanka Bhotika
Comments