Providers Reference
Overview
Services can be provided by third parties to provide common functionality to websites. In most cases, these services are provided by apps on the server or by modules in DNN.
The DNN Platform includes default providers. In some cases, DNN Evoq includes additional providers. Other third-party providers are also available at the DNN Store and at DNN Forge.
- Abstract provider. Exposed as a part of the DNN API set.
- Concrete provider. Specific implementation of the abstract provider.
To replace the default provider, simply change the value of the defaultProvider attribute of the appropriate tag in the web.config file.
- Authentication provider
- Caching provider
- Data provider
- Folder provider
- Friendly URL provider
- HTML editor provider
- Logging provider
- Membership provider
- Module caching provider
- Navigation provider
- Output caching provider
- Permissions provider
- Profile provider
- Roles provider
- Scheduling provider
- Search data store provider
- Search index provider
- Sitemap provider
Authentication provider
<authentication defaultProvider="ADSIAuthenticationProvider">
<providers>
<clear/>
<add name="ADSIAuthenticationProvider" type="DotNetNuke.Authentication.ActiveDirectory.ADSI.ADSIProvider, DotNetNuke.Authentication.ActiveDirectory" providerPath="~\Providers\AuthenticationProviders\ADSIProvider\"/>
</providers>
</authentication>
- a login control
- a settings control
- (optional) a logout control
- Microsoft Live
You can also create your own.
See membership provider (local authentication), permissions provider, and roles provider.
Caching provider
<caching defaultProvider="FileBasedCachingProvider">
<providers>
<clear/>
<add name="FileBasedCachingProvider" type="DotNetNuke.Services.Cache.FBCachingProvider, DotNetNuke" providerPath="~\Providers\CachingProviders\FileBasedCachingProvider\"/>
</providers>
</caching>
A caching provider ensures that cached settings are synchronized across multiple servers in a web farm.
- The default FileBasedCachingProvider uses a central file store to invalidate cache entries. This caching provider requires setting up permissions, application pools, domain users, and code access security.
- The WebBasedCachingProvider is available only for Evoq customers and is recommended over the default. It requires minimal setup. Any web server can notify the other web servers to expire their cache in order to remain synchronized.
Data provider
<data defaultProvider="SqlDataProvider">
<providers>
<clear/>
<add name="SqlDataProvider" type="DotNetNuke.Data.SqlDataProvider, DotNetNuke" connectionStringName="SiteSqlServer" upgradeConnectionString="" providerPath="~\Providers\DataProviders\SqlDataProvider\" objectQualifier="" databaseOwner="dbo"/>
</providers>
</data>
A data provider allows a module to transfer data to and from a data store. To enable upgrades, data provider files include their version numbers in their filenames. During an upgrade, all intervening upgrades that were not previously installed will be installed with the current version.
- objectQualifier. A custom string used as a prefix to names of DNN-related SQL objects, such as tables and stored procedures. This allows you to identify the DNN objects in a database that supports other applications besides DNN. The default is blank.
- databaseOwner. A token used in database scripts to refer to the SQL Server database schema that is used during DNN installation. The default is
dbo
.
- xx.xx.xx.sqldataprovider is a script executed during module/core installation/upgrade to modify the objectQualifier and databaseOwner settings. The xx.xx.xx portion of the filename is the script version. Note: DNN 8+ supports incremental scripts.
- uninstall.sqldataprovider includes all of the module's SQL stored procedures, functions, views, and tables to be removed from the data store when the module is uninstalled. Developers: Always check if an item exists before removing it.
Folder provider
<folder defaultProvider="StandardFolderProvider">
<providers>
<clear />
<add name="StandardFolderProvider" type="DotNetNuke.Services.FileSystem.StandardFolderProvider, DotNetNuke" />
<add name="SecureFolderProvider" type="DotNetNuke.Services.FileSystem.SecureFolderProvider, DotNetNuke" />
<add name="DatabaseFolderProvider" type="DotNetNuke.Services.FileSystem.DatabaseFolderProvider, DotNetNuke" />
</providers>
</folder>
A folder provider enables websites to use multiple storage locations, including third-party cloud storage systems. The root portal directory can also be moved to a different provider.
- StandardFolderProvider, an unsecured file system.
- SecureFolderProvider, a secured file system.
- DatabaseFolderProvider, a secured database.
- Amazon Simple Storage Service (S3)
- Dropbox
- Box
- Microsoft Azure Storage
- UNC Share
A folder mapping or folder type is an implementation of a folder provider for a specific storage system. A folder mapping can have its own settings, and it can be prioritized in case of collisions during synchronization.
- Administrators: You can choose and configure the folder types you allow in the DNN installation (superuser or host) or in a specific website (site administrator).
- Developers: To create a folder provider,
- Implement the abstract methods inherited from the FolderProvider class.
- Provide a Settings control that inherits from the FolderMappingSettingsControlBase class.
- Provide an icon to be displayed in the File Manager.
See Folder Providers in the DNN Wiki.
Friendly URL provider
<friendlyUrl defaultProvider="DNNFriendlyUrl">
<providers>
<clear/>
<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="advanced"/>
</providers>
</friendlyUrl>
A friendly URL is a human-friendly and/or search-friendly URL that hides a coded URL. A friendly URL provider associates the internal URL (used to retrieve the requested page) with the friendly URL (displayed on the browser's address bar when the page is displayed).
See Building Friendly URLs in the iFinity blog by Bruce Chapman.
HTML editor provider
<htmlEditor defaultProvider="DNNConnect.CKE">
<providers>
<clear/>
<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>
An HTML editor provider is used to edit HTML directly within the website.
Logging provider
<logging defaultProvider="DBLoggingProvider">
<providers>
<clear/>
<add name="DBLoggingProvider" type="DotNetNuke.Services.Log.EventLog.DBLoggingProvider, DotNetNuke" providerPath="~\Providers\LoggingProviders\DBLoggingProvider\"/>
</providers>
</logging>
A logging provider manages error logs, event logs, and security logs in DNN.
Membership provider
<members defaultProvider="AspNetMembershipProvider">
<providers>
<clear/>
<add name="AspNetMembershipProvider" type="DotNetNuke.Security.Membership.AspNetMembershipProvider, DotNetNuke" providerPath="~\Providers\MembershipProviders\AspNetMembershipProvider\"/>
</providers>
</members>
- Creating new user accounts.
- Storing user information in SQL, Active Directory, or other data store.
- Authenticating users.
- Managing passwords.
- Exposing a unique identifier for authenticated users to use in your own modules.
Unlike authentication providers which provide SSO authentication, the membership provider is a standalone authentication solution that is local to the website or to the DNN installation.
See authentication provider (SSO authentication), permissions provider, and roles provider. Also see the MSDN Library's Introduction to Membership and Engage Weblog's Building your own Membership Provider by Henry Kenuam.
Module caching provider
<moduleCaching defaultProvider="FileModuleCachingProvider">
<providers>
<clear />
<add name="FileModuleCachingProvider" type="DotNetNuke.Services.ModuleCache.FileProvider, DotNetNuke" providerPath="~\Providers\ModuleCachingProviders\FileModuleCachingProvider\" />
<add name="MemoryModuleCachingProvider" type="DotNetNuke.Services.ModuleCache.MemoryProvider, DotNetNuke" providerPath="~\Providers\ModuleCachingProviders\MemoryModuleCachingProvider\" />
</providers>
</moduleCaching>
A module caching provider manages how the output of modules are cached and aged, whether they are stored in a file or in memory.
Output caching provider
>outputCaching defaultProvider="FileOutputCachingProvider">
>providers>
>clear />
>/providers>
>/outputCaching>
An output caching provider manages how the entire page is cached and aged.
Permissions provider
<permissions defaultProvider="CorePermissionProvider">
<providers>
<clear/>
<add name="CorePermissionProvider" type="DotNetNuke.Security.Permissions.CorePermissionProvider, DotNetNuke" providerPath="~\Providers\PermissionProviders\CorePermissionProvider\" />
</providers>
</permissions>
A permissions provider manages asset permissions, such as those associated with components of the website, including page permissions and module permissions. These permissions are used in conjunction with user permissions (authentication provider or membership provider) and group permissions (roles provider) to determine if a specific user would be allowed to access the asset.
DNN Evoq supplies its own GranularPermissionProvider, which allows greater granularity with permissions.
See authentication provider (SSO authentication), membership provider (local authentication), and roles provider.
Profile provider
<profiles defaultProvider="DNNProfileProvider">
<providers>
<clear/>
<add name="DNNProfileProvider" type="DotNetNuke.Security.Profile.DNNProfileProvider, DotNetNuke" providerPath="~\Providers\MembershipProviders\DNNProfileProvider\"/>
</providers>
</profiles>
A profile provider manages the profiles of registered users of the website.
Roles provider
<roles defaultProvider="DNNRoleProvider">
<providers>
<clear/>
<add name="DNNRoleProvider" type="DotNetNuke.Security.Roles.DNNRoleProvider, DotNetNuke" providerPath="~\Providers\MembershipProviders\DNNMembershipProvider\"/>
</providers>
</roles>
A roles provider manages the permissions required for specific roles. This allows the administrator to easily assign/revoke all permissions associated with a role by simply adding/deleting a user or a set of users to/from the role.
See authentication provider (SSO authentication), membership provider (local authentication), and permissions provider.
Scheduling provider
<scheduling defaultProvider="DNNScheduler">
<providers>
<clear/>
<add name="DNNScheduler" type="DotNetNuke.Services.Scheduling.DNNScheduler, DotNetNuke" providerPath="~\Providers\SchedulingProviders\DNNScheduler\" debug="false" maxThreads="1" delayAtAppStart="60" />
</providers>
</scheduling>
A scheduling provider manages when tasks are performed and triggers them automatically at the indicated time.
The DNN Scheduler can be accessed through
.Search data store provider
<searchDataStore defaultProvider="SearchDataStoreProvider">
<providers>
<clear/>
<add name="SearchDataStoreProvider" type="DotNetNuke.Services.Search.SearchDataStore, DotNetNuke" providerPath="~\Providers\SearchProviders\SearchDataStore\"/>
</providers>
</searchDataStore>
A search data store provider allows you to specify where the search engine should store search results and other search-related data.
Search index provider
<searchIndex defaultProvider="ModuleIndexProvider">
<providers>
<clear/>
<add name="ModuleIndexProvider" type="DotNetNuke.Services.Search.ModuleIndexer, DotNetNuke" providerPath="~\Providers\SearchProviders\ModuleIndexer\"/>
</providers>
</searchIndex>
A search index provider allows you to specify how the website content is indexed and what rules are performed to do searches.
Sitemap provider
<sitemap defaultProvider="coreSitemapProvider">
<providers>
<clear />
<add name="coreSitemapProvider" type="DotNetNuke.Services.Sitemap.CoreSitemapProvider, DotNetNuke" providerPath="~\Providers\MembershipProviders\Sitemap\CoreSitemapProvider\" />
</providers>
</sitemap>
A sitemap provider creates an XML file that informs web crawlers and users how your website is organized. A module's sitemap exposes the multiple pages generated by the module, such as when a module serves up blog posts, articles, and forum discussions.
- Checks the cache settings configured through the SiteMap module, which is available under .
- Loops through all sitemap providers to build a collection of URLs.
- Creates the sitemap.xml file and stores it in the Portals/portalID/SiteMap folder.
- In DNN Evoq Content: Publisher
- In DNN Evoq Engage: Answers, Blogs, Discussions, Ideas, Events, Wiki
See the DNN Wiki's Creating a Sitemap Provider for Your Module by Chris Paterra.