DotNetNuke uses a single ASPX page (default.aspx) to show all the controls and content. There are two advantages to doing this. First, the user interface management logic focused on a single page, followed by the lack of access to the application, enhance the security of the scheme. Default.aspx has only a limited function – a <HEAD> element that contains page management and a placeholder for placing the skin. When the user first accesses the DotNetNuke application, first check the URL sent from the user's browser and the request header (how to flip?). ) to determine the skin used. This process requires access to the Skins table in the database, which contains all skin and container usage allocation tables. An allocation table that stores such a child assignment in a hierarchical manner can overwrite the parent assignment (for example, page-level skin settings should overwrite site-level skin settings). The core program reduces the performance impact of accessing the database by obtaining the current skin settings through a valid object cache.
Once the skin is determined, the associated user control can be dynamically loaded and placed on a placeholder on the page. Every space that uses the skin should refer to the Skin.vb file stored in the \admin\skins folder. This file is responsible for all work in the skin Processing: security management, loading content.