DotNetNuke Hosting with ASPHostPortal.com

BLOG about DotNetNuke CMS, latest technology and Special DotNetNuke Hosting Package with ASPHostPortal.com

DotNetNuke Hosting - ASPHostPortal.com :: How to Clear Your DNN Cache

clock April 10, 2015 06:42 by author Ben

Have you found yourself needing to programatically clear DotNetNuke (DNN) cache but were dismayed to learn newer DNN versions no longer depend on an easily-cleared cookie? Here's a simple alternative to force the cache to clear

Clearing Cache
So you have a require to clear a DNN user's cache but you're employing a newer version of DNN that no longer retailers factors in an easily-cleared cookie. If this describes you then you're possibly:

  • Bypassing DNN's "correct" mechanisms (built-in objects and the Data Access Layer) by directly calling SQL stored procedures.
  • Querying straight through to data stored in SQL tables.

As an admin you have DNN's built-in alternatives for clearing cache and even "resetting the application domain". Your finish users, even so, lack these options and, actually, why would you desire customers to possess to accomplish something particular? You desire a solution that's hidden and automatic.

Cut to the chase:
Under is actually a link to a cost-free DNN7 module that does one factor: flush the cache. Drop the module on a web page, set the VIEW permissions for whatever group(s) you need the module to become active for and that's it.

The module itself has no configuration choices. The only genuine point to think about is who you would like the module to fire for. Users that are not logged in have no user-specific data to flush so you'll be able to rule out "Unverified Users" and, by extension, "All Users" (that is the mixture of "Registered Users" and "Unverified Users"). In most situations you will probably want to set the VIEW permission to "Registered Users".

Note that you simply do *not* want to use this module on pages with a lot of site visitors. Continuously flushing cache is definitely an outstanding way to cripple a busy web site. This module is greatest used on infrequently-visited pages (like a custom "user update" web page).

Additional Thoughts: Short and Sweet
The module necessary less than 10 minutes to create using DNN's constructed in "module creator" function (that indicates I designed it from within a DNN site utilizing absolutely nothing but the web browser) and less than 5 minutes to create the deployment package making use of DNN's constructed in "create package" feature but... those are topics for another day.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com :: Modify the Portal.css File From DNN Interface Site

clock Maart 31, 2015 08:38 by author Ben

In DNN website, there is a portal.css file for each portal present inside the web site. In some cases we need to modify the css classes of custom modules to create it responsive with skin from the portal, in that case its usually much better to keep these css classes in portal.css rather than Module.css of custom module, so that it may be effortlessly managed by modifying the portal.css from site interface without going towards the module code file.

Step by step approach to access the portal.css file are offered under.

Step 1

Log in to the DNN website as a Host. Go to the Admin -> Site Settings as shown in the image below.

Step 2

Make sure you have selected Stylesheet Editor from the menu.


Step 3

Upon clicking Stylesheet Editor, a text editor will come which contains all the css classes present in portal.css file.
Here, we can add any new classes or modify existing classes.

For example, we need border color based on the skin color and we have used style_cat_border css class in our custom module to style the border. So, in order to add border style that will fit with the skin, its always a nice to add this class in portal.css class rather than Module.css file of module.

Once can easily change it by going to portal.css of website as shown in the image below. In the end click on Save Style Sheet to implement the changes.


As we've got observed within the above explanation, it often greater to help keep all these css classes which needs to be changed determined by skin from the DNN website inside the portal.css in the internet site which in turn may be very easily managed via internet site interface.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting With ASPHostPortal.com :: How to Integrating the Google Tag Manager (GTM) into DNN

clock Maart 27, 2015 05:40 by author Mark

Today I will explains about Integrating the google tag manager (GTM) into DNN. Google has an awesome scripts-management engine called GTM (Google Tag Manager). Though it talks about managing tags, in reality it actually manages script-integration. Particularly Google-scripts (like Adwords and tracking stuff), but also jQuery and similar.

How does it work? In general you create a “set” of “tags” (read: scripts w/parameters) in a web-interface provided by google. Then you integrate that set with some iFrame/Script-HTML-snippet in your layout. If one day you would like to add another tag or change the tag-integration-rules, you do this on the GTM-System, without having to modify your page. Note that the GTM-System also allows various rules, like automatically integrating different scripts depending on the page that is being viewed; adding custom parameters etc. – very powerfull.

The integration is a bit tricky with DNN, because it uses an iFrame which must be added right after the tag and before the default tag.
To learn more about GTM, visit the Google Tag Manager website.
To integrate your tag, use this snippet in your default.ascx (remember to replace the xxxx with your code). Note: this works with DNN 6+ and 7+.

<script runat="server">
     protected override void OnInit(EventArgs e)
     {
         base.OnInit(e);
         var tp = (CDefault)Page;
         tp.FindControl("Body").Controls.AddAt(0, new Literal() { Text = "<!-- Google Tag Manager --><noscript><iframe      src='//www.googletagmanager.com/ns.html?id=GTM-XXXX'height='0'width='0'style='display:none;visibility:hidden'></iframe></noscript><script>function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':newDate().getTime(),event:'gtm.js'});varf=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'scr" + "ipt','dataLayer','GTM-XXXX');</scr" + "ipt><!-- End Google Tag Manager -->" });      
     }
 </script>

By the way – the easiest way to test and use this is by trying the DNN App for GTM I created.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com :: Utilizing jQuery to Solve Issues : Automatic Checkbox Checking

clock Maart 18, 2015 06:24 by author Ben

The much more I find out the a lot more excited I get about how slick it's and so straightforward to work with. It can genuinely give some rally cool features to your site as well as give a good way for me as a programmer to circumvent some tasks that can be hard to accomplish using server side programming.

Today I was presented using a process on an current internet site using the DotNetNuke publishing platform. The consumer has designed a form employing a module inside the framework. The kind is used to order some stuff and the visitor has to click quite a few verify boxes based on what they wish to order. There is certainly also ha a bunch of pages with data concerning the items. Every web page includes a direct hyperlink on i to acquire towards the order web page. Now, when the visitor clicks this link the check box for that distinct item ought to be checked, simply to make issue simpler.

I have no intention on going in towards the framework to alter the behaviour from the module so I thought I'd attempt some jQuery on this.

Initial off the only thing I truly know is the fact that the order kind will have a header like this "<h1>Order form</h1>" (potentially the module can exist on several pages, even several times around the same web page) and that the item page may have the item name within the url, which is also the text on the verify box.

My thought was that very first verify when the order kind exist around the web page by looking for the header then check the referrer url and evaluate this towards the verify box names. This is the code:

$(document).ready(function()
{
if($("h1:contains(Order form)"))
{
setOrderCheckboxes();
}
});

// Automatically set checkboxes if the visitor previously viewed
// a page named the same as the checkbox
function setOrderCheckboxes()
{
$("input[type='checkbox']").each(function()
{
// The text element is always a sibling directly following the checkbox
var checkboxName = $(this).next().text();

// DNN url replaces characters in PageName
checkboxName = checkboxName.replace(" ", "").replace("-", "");

if(document.referrer.indexOf(checkboxName) != -1)
{
$(this).attr("checked", true);
}
});
}

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.




DotNetNuke Hosting With ASPHostPortal :: How to modify DotNetNuke Login Page? The Easy Way

clock Maart 16, 2015 05:42 by author Mark

The DNN login page is the most forgotten part in all DNN users and even some professional DNN portals like PokerDiy.com and neoteo.com. There are few modules that allow you to have a simplified login or pop up login like digg.com but you need to pay or it and it is not cheap and easy to change the design.
dnn-login-sample

In order to make changes to your DNN Login page, you have to understand the components in the login module. The DNN Login module consists of 4 parts which is the DNN Membership Authentication System, The Authentication Provider, The Login Module itself and the Language Resources Files (.resx).

The linkage of these components are as below:
Login Module loads Authentication Provider(s) into it and the provider as a gateway to the DNN Membership Authentication System. For example, if a user using LiveID to login your DNN Portal, the LiveID Authentication Provider redirect the user to MSN LiveID Gateway and then pass the credential back to your DNN Portal and match it with the DNN Membership Authentication System.

Login Structure

However, DNN Membership Authentication System also consist of Member Registration, Password Reminder and Forgot Password Question which makes the designing work on Login Works kinda tricky, not even need to mention the words that are loaded from the language resource files.
Ok, lets start changing those ugly interface! First we need to locate all the files that need to be changed. You will need to have FTP access to your DNN installation root.

Step 1: Changing the Login Module Container

The Login Module is basically the Admin’s Container by default where there is actually no login page but a “DNN Control” (Home/ctl/Login.aspx) unless you create a page and specified it in Admin > Site Setting > Advance Setting > Login Page.

Step 2: Locating Files that need to be changed

Now we need to locate the Login Authentication Providers at /DesktopModules/AuthenticationServices/ There will be 3 default providers which is DNN, LiveID and OpenID. You will find Login.aspx and Login.ascx.resx (under App_LocalResources) inside it and that are the files you are going to change it. For the DNN authentication files, you can get them at: /admin/Users/user.aspx and /admin/Authentication/login.aspx
Make sure you didn’t mixed up with login.aspx in providers.

Step 3: Changing the Text and Words

You can either change it using DNN Language editor which is located in Admin > Language in control panel are directly look for the files in FTP. I actually prefer the later method as it is more easier to read and modify using Visual Web Developer.
“Register” “Forgot and Password” at
/httpdocs/admin/Authentication/App_LocalResources/Login.ascx.resx
*If you have more than one portal, the file name will be “Login.ascx.Portal-0”

<data name="Remember.Text" xml:space="preserve">
     <value>Remember Login</value>
 </data>
 <data name="cmdForgotPassword.Text" xml:space="preserve">
    <value>Forgot Password ?</value>
 </data>
 <data name="cmdRegister.Text" xml:space="preserve">
     <value>Register</value>
 </data>

All you need to to change the text inside between the “value” attribute. I’d not recommend you to put html/css into it as it will increase the load time and may messing up xhtml coding standard…

Step 4: Changing the files.

First, we need to deal with the Login Tabs which is using the DNNTabStrip webcontrol. You can find this file at:
/httpdocs/admin/Authentication/Login.ascx
Inside the file, look for:

<DNN:DNNTabStrip
 ID="tsLogin"
 runat="server"
 TabRenderMode="All"
 CssTabContainer="LoginTabGroup"
 CssContentContainer="LoginContainerGroup"
 DefaultContainerCssClass="LoginContainer"
 DefaultLabel-CssClass="LoginTab"
 DefaultLabel-CssClassHover="LoginTabHover"
 DefaultLabel-CssClassSelected="LoginTabSelected"
 visible="false" />

The Css Classes are located at /Portals/_default/default.css by default. You can either change the css file, override it in skin.css / portal.css or redefine the classes in login.ascx
If you look at the pokerDIY login tabs, you will see that the tabs have been pushed into 2 lines which makes the layout very messy. You can simply widen it by changing the “width=160” to a larger number in the following lines and you will have the problem solved.

<asp:panel id="pnlLogin" runat="server" Visible="false">
     <table cellspacing="0" cellpadding="3" border="0" summary="SignIn Design Table" width="160">

Ok, now you have change the “Register” and “Forgot Password?” text but what about the design? For these, you need to look for “cssclass=”CommandButton” in the following lines located inside the same login.ascx.

<asp:Linkbutton id="cmdRegister" resourcekey="cmdRegister" cssclass="CommandButton" text="Register" runat="server"/>
 <asp:Linkbutton id="cmdPassword" resourcekey="cmdForgotPassword" cssclass="CommandButton" text="Forgot Password?" runat="server" />

We’ll leave the other parts of codes inside the file and CSS coding for a moment. Now we proceed to change another login.ascx which is located in:
/DesktopModules/AuthenticationServices/DNN.ascx
There are few basic things you need to change to make your login looks beautiful which are: The width, Label text/icon, login button, input box and the text inside it. You can find them in these lines:

<dnn:label id="plUsername" controlname="txtUsername" runat="server" resourcekey="Username" />
 <dnn:label id="plPassword" controlname="txtPassword" runat="server" resourcekey="Password" />
 <asp:textbox id="txtUsername" columns="9" width="150" cssclass="NormalTextBox" runat="server" />
 <asp:textbox id="txtPassword" columns="9" width="150" textmode="password" cssclass="NormalTextBox" runat="server" />
 <asp:button id="cmdLogin" resourcekey="cmdLogin" cssclass="DNNLogin" text="Login" runat="server" />

Like many others, you probably thought of removing the stupid help icon in the login page. It is simple if you’re only having a single language website version. All you need is to replace the <dnn:label to standard html code.
If you need to persevered the language resources function, you may substitute the dnn label control into standard asp label control as follow:

<asp:label id="plUsername" controlname="txtUsername" runat="server" resourcekey="Username" />

To change the textbox design as well as the font inside, simply look for <asp:textbox and change the cssclass value and thing applies to <asp:button for the login button.
After you’ve changed all the cssclass value in dnn.ascx, you may proceed to LiveID.ascx and OpenID.ascx using the same method.

Step 5: CSS Styling codes

Now we’ve reached into the hardest part where we need to use css to make a stylish login page. First, I would suggest you to put a new name for each of the value inside the CssClass attribute. This is because the default value are general classes which are shared with other modules and controls in the whole portal.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com :: The Best Way to Modify DNN 7 Login Module Skin Design

clock Maart 13, 2015 07:08 by author Ben

DNN 7 finally comes with pop up login window but many people actually fooled by its tricky method to perform that. The DNN 7 pop up login module is developed employing Jquery to load the default login web page through iframe!

For that reason, to modify the design and style of the login panel, you will ought to look for 3 major parts:

  1. The pop up windows design.
  2. The login page.
  3. The Login module.

Initial, in case you wish simply to disable to pop up login, all you will need to do is disable “Enable Pop-up” below Website Setting > Usability Settings. *This setting is site wide.

If you only wish to disable the only login module pop up, you'll ought to locate this file in
root\admin\Skins\Logo.ascx.cs
Then look for line 119-122 and take away it.

if (PortalSettings.EnablePopUps && PortalSettings.LoginTabId == Null.NullInteger)
{
    loginLink.Attributes.Add("onclick", "return " + UrlUtils.PopUpUrl(loginLink.NavigateUrl, this, PortalSettings, true, false, 300, 650));
}

To modify the pop up window design, all the style definitions are situated in default.css in /portals. folder. Appear for something that has .dnnforms I’ll leave this in an additional subject.

Modifying the Login web page is straightforward, essentially it really is is dependent upon your skin on the web page. If you’re making use of pop up window, I advise you to create a blank skin for the login page to speed up the loading. (As it utilizes iframe to load whole login web page whilst displaying only the login form within the pop up window, maintain the login web page easy to speed it up)

Now the tough element, Login Module. You may want to locate these 2 main files:

root\DesktopModules\AuthenticationServices\DNN\Login.ascx and

root\DesktopModules\AuthenticationServices\DNN\Login.ascx.cs

Whilst you are able to pretty much leave the .cs file alone, the .ascx file is essential for modifying the html structure from the module. The very good factor about DNN 7 login module would be the tableless coding structure where it is possible to play about with the style only using CSS and Jqeury.

The new installation of DNN 7 will not shipped with LiveID and OpenID Authentication any longer. I will leave that portion out for now.

Until next time then, really feel cost-free to ask me if you necessary much more sophisticated guide. I’ll attempt my greatest to help.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting With ASPHostPortal :: How To Setting up the DotNetNuke Blog Module

clock Maart 12, 2015 06:06 by author Mark

This article will walk you through this module and how to successfully configure it on a page within your DNN portal.This article assumes that you have downloaded and installed this version of the module in your website.  This article also discusses creating a blog that is to be used only by the individual configuring the blog, so you will want to login as the blog owner before continuing with this tutorial.  For this example we will be creating a blog for use by the “Admin” of the site.

Creating the Blog!

To get started we will add a new page and call it “Blog”, you complete this step by clicking the   icon in the control panel.  Input the following information for the blog page, or feel free to input your own specific information.
This creates a page that is visible to all users that will contain our blog.  Now, we will want to add an instance of the blog to this newly created page.  Select “Blog” from the list of available modules in the control panel and then select “Add”

Now right away you will notice that the blog module has now added a total of 5 new module displays to your page; most recent blog entries, blog list, new blog, search blog and blog archive.  We will work with each of the controls individually to properly configure the blog for display.

Lets start with the “New Blog” module, this is an administrative module that is used to manage the blogs that are part of the module so we will first want to change the display properties of this module to disable viewing by all users.  Hover over the action menu and select “Settings” to enter the module settings.  In the permissions section, uncheck the “Inherit View Permissions from Page” and ensure that no values are selected, then click “Update”.  The module should now show that it is only available for administrators.

This view control is the one that you will use to create and manage the properties for your blog and sub-blogs.  Once you have the view listed above click on “Create My Blog” to start the configuration of the blog module.  You will be presented with a “Create new Blog” page that will prompt you for various bits of information; each of these will be discussed below.

  • Title – This is the display title for your blog, it is displayed at the top of the entry listing and in the blog directory.  For this example we will call our blog “Test Blog”
  • Description – This is a short description to the purposes of the blog.  This content is displayed on RSS feeds and as general blog information..  For this example we will use the text “Demonstration blog description text”.
  • Blog Options – This section is a collection of checkboxes and looks like this, each setting will be discussed below.
  • Make this blog public – This option is used to make the blog visible to the public
  • Allow users to post comments – This allows registered users to post comments to your blog
  • Approval for user comments required – This option is only enabled for selection if user comments are allowed.  If enabled this option will prevent any comments from displaying publicly until they are approved
  • Allow anonymous users to post comments – this allows anonymous users to post comments to your blog
  • Approval for anonymous comments required – Just like the rule for user comments this adds an approval processes to the anonymous comments.
  • Allow Trackback Comments – This option allows users of other blogs to link back to your blog inputting a comment automatically
  • Approval for trackback comments – Just like the other items this will enable an approval process flow
  • Trackback auto discovery – This is a mode that will allow trackbacks to be discovered automatically
  • Send mail notifications - This option will send an e-mail notification to the blog owner after each blog comment and/or trackback
  • Use CAPTCHA for comments – This option will require the completion of a visual CAPTCHA before a comment can be submitted.

The final option in this section is the “When displaying your identity use” option.  This allows you to use either your username or full name as the identifying name for blog postings.
Typically when configuring modules we would enable comments for registered users without approval and for anonymous users with approval.  These will be the options that are selected for this tutorial.

  • Syndication Options – This collection of settings relates to RSS feeds and if/how they will be created.  Each option will be described below.
  • Syndicate this blog – If this is enabled the content for this blog will be introduced into an RSS feed
  • Syndicate independently – If this is enabled the blog will be syndicated as its own separate RSS feed.  You can use this with child blogs to prevent them from all being listed in 1 feed.
  • Managing Editor - This textbox is where you can put an e-mail address that should be listed as the managing editor for the RSS feed.  This is something that should be populated with a valid e-mail address as it provides a method for feedback and questions from consumers of the RSS feed.
  • Date and Time Options – These options are used to control how the dates and times are displayed in the blog.  This is where you select the time zone for your postings as well as your desired date format.  Below is an example of the default setting for US Central time.

Once you have gone through these settings you can skip past the “Child Blogs” section as this section is outside the scope of this article.  After clicking on “Update” your blog will be created.

Configuring your page layout

Now that we have created a blog it is a bit easier to see what each of these individual modules on our page are used for.  Lets take a bit of time to organize and discuss each of these modules.  The following steps will take you through a process to provide you meaningful information for each control as well as will give you instructions on how to rename the components to be more descriptive.

New_Blog

This control is the first control that we worked with an serves as an administration module, initially used to create the blog and eventually used to modify blog settings and to add new blog entries.  Typically renaming this module to “Administration” is helpful as it makes it easy to remember what its purpose is.  You can click in the module title to use the inline editor to change the name of the module.
It is also very common to move this module to the left pane to condense it’s display.  The module display provides you with three options.

Blog Settings

Clicking on this link will return you to the blog settings page that we used above to create your blog; you can use this to administer the various configuration elements of your blog.

View My Blog

Clicking on this link is the same as clicking your specific blog form the “Blog_List” module; it simply updates the “Most recent blog entries” window to show your blog listing.

Add Blog Entry

This is where you can make a new post to your blog.  You will be presented with an input screen that will provide you with fields for entry date, blog, title, summary, and blog.  Each of these fields are fairly self explanatory you can use these fields to control the CONTENT of your blog post.  You additionally have an “Entry Options” section where you can set options for your blog.  These items exist to allow you to “publish” a blog, to allow comments, and/or to display a copyright notice at the bottom of your blog posting.  Below is an example of these settings under their defaults
After you populate all values for the fields you may press “update” to actually make your new blog post!  It is that easy!

Blog_Archive

This module is a simple calendar that shows days that have blog posts and allow users to navigate the blog based on a date range.  Typically this module is renamed to “Archive” or something of that nature.  This is another control that for both space and usability is typically moved to the “RightPane” to allow it to display alongside the blog postings.  An example of the interface after modifying this control and the previous control is below.
As you can see we are starting to create something that looks more like a blog that you might expect to see.

Blog_List

This module is a control that allows users to select the various views from your blog.  They are presented options for “View All Recent Entries” which will display recent entries from any and all blogs and child blogs.  They are also given the ability to click on each individual blog and they will be displayed that information.  This is another control that condenses display very nicely and is deserving of a new name and location.  Typically this is found on the “LeftPane” of a site and is called “Navigation” or “Blogs” something a bit more descriptive to your users.
The action menu for this module provides you access to the “Blog Settings” page and “Add New Blog” pages.  This makes the “Administration” module unneeded for administration purposes now that you have created your blog.  Some individuals remove the module entirely but most just leave it for administration display.

Search Blog

This module is the search feature for the blog module itself allowing users to search for desired content, again this is a module that can condense to display in smaller areas and is typically located near the “Archive “ control as they are similar in function.  For this example we will rename it to “Search” and place it directly below the “Archive” module.
This module has no configuration options and provides users basic searching of blog content.

Most Recent Blog Entries

This module is the actual display control for the module that will show your blog posts to your users and allow them to view/leave comments.  The view of this specific module changes depending on how the other modules are configured.  You can view summary information for you blog postings and then drill down into the full detail display.
This module does have a configuration element that is accessible via the action menu by selecting “Module Options”.  These options apply to the blog module as a whole and will be discussed in two separate sections.

Basic Settings

These settings are basic settings that control the display of the blog and the input of content for the module.  Below are the default settings for this module.  They are all fairly self explanatory and are used to mostly limit the content to ensure that you have a proper display on your site for content length, search results length, and RSS feed length.

Advanced Settings

These settings are more advanced topics and relate to integration and other elements of the blog module.  Each of these values will be discussed below.

  • Allow Upload Options – Can blog posters upload items to their posting?
  • Show Blog Summary – Is the summary displayed when viewing the single blog detail?  Typically this is disabled as your summary is the first portion of your full blog post and it wouldn’t make sense to display it before the blog content.
  • Show unique title – If enabled this module will use a blog specific title to describe the content of the page.  For SEO this is a very good practice!
  • Personal Blog Page – If you want to display 1 and ONLY 1 blog on the page you can select the blog that is associated with the module here.  This essentially disables the function of the “Navigation”/”Blog_List” module discussed earlier and selects the given blog directly.
  • Enable DNN Search – This option is disabled by default.  If selected the module will use the ISearchable interface to provide the core DNN search engine with information about your blog postings.

Summary

After walking through this example you should now have a blog page that looks something like the following.

Best DotNetNuke 7.4 Hosting Recommendation

ASPHostPortal.com

ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability



DotNetNuke Hosting With ASPHostPortal :: How To Manage Pages in DNN

clock Maart 4, 2015 05:20 by author Mark

Manage Pages in DNN

To create a new page in DNN is pretty simple. After you login on the site, look for the menu Pages and hover your mouse into the menu, a sub menu will appear under the menu. Click the option Add New Page.

Page Properties in DNN

Below is the main properties that you will basically utilize in daily use.

  • Page Name : Page name must unique and can not be duplicate or has the same name with other pages. What ever you type in here, it will appear exactly in the site menu.
  • Page Title : Page Title is used for meta tag Title. You can optimize your site by specifying individual unique title for each page.
  • Page URL : You can define your own custom url in here. This will help optimize your site for SEO purposes.
  • Description : This will be used in meta tag description. You can include a brief description about this page.
  • Keywords : This will be used in meta tag keyword. You can separate a keyword by comma.

"Note: most search engine will no longer consider the meta keyword as important factor for search engine search".

  • Include in Menu : By untick this one, the menu will be hidden and will not be visible in the site menu.

Manage Page's Permission

The page permission will list available roles in the current site portal. By default Administrators, All Users, Registered Users, Subscribers, Translators, Unauthenticated Users, and Unverified Users are predefined in DNN. What we interest most are probably All Users which cover all user roles, Registered Users which cover registered members only and Administrators which covers admin account only.

If you want to make the site visible to all users then you should tick All Users View Option. The Edit option, give ability to specific role to edit the content of the page. The content in here are the modules of the page, it could be HTML modules, news modules etc. If you do not want any public users able to view this page, you can set to Registered Users. But if you want to give the page visibility to admin only, then you should choose Administrators.

Alternatively, you can use Page Managements to manage your site pages easily. This menu is available under the Site menu.
All your pages will be displayed in a tree menu on the left hand side. To edit the page, you can just click the menu name. If you want to delete the page, you can just simple right click the menu link.

Best DotNetNuke 7.4 Hosting Recommendation

ASPHostPortal.com

ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability



DotNetNuke Hosting - ASPHostPortal.com :: Integrate DNN with ADFS Without Writing a New Authentication Provider

clock Februarie 27, 2015 05:29 by author Ben

I lately went via the discomfort of attempting to integrate ADFS with DNN. I hope to spare an individual else the pain I went through.

My companion organization already had ADFS setup. My purpose was to have the partner organization authenticate the user after which have DNN automatically recognize the user, not obtaining to enter any far more credentials. From there we wanted to manage the groups and permissions by way of the standard DNN portal.

I was initially beneath the misconception that I couldn't make use of the present DNNMembershipProvider and I'd have to generate a whole new Authentication Provider and gather the credentials and pass them to my partner organization.

What I have figured out is that you can use the existing DNNMembership provider, but you've got to make the user ahead of the request gets towards the DNNMembership provider making use of the info offered by ADFS.

Note: This approach is really a straight pass-through from ADFS to DNN. No measures are taken to authenticate the user or to check any from the inputs from ADFS.

As an aside, this method performs not just with ADFS but in addition any other external 3rd-party Authentication approach that sends user info in headers or cookies. Change the context_AuthenticateRequest approach to suit your requirements.

Right here are the pre-conditions to this article. I expect:

  • Your partner organization has ADFS up and running
  • You have your ADFS proxy up and running and it talks to the partner organization.
  • ADFS Web Agent is installed on the server you are running.

Let’s get begin.


HTTPModule

What you've to complete is produce an HTTPModule that will intercept the AuthorizeRequest events ahead of DNN does. An over-simplified definition of an HTTPModule is, it is a piece of code that runs ahead of any web page gets hit. You can listen for a large amount of distinct events. For much more data, click right here.

To make the HTTPModule you'll need to:

  • Open Visual Studio and produce a brand new class library.
  • Generate a brand new class and copy the code attached to this blog.
  • Add References to the following DLLs
    • DotNetNuke
    • System.Web
    • System.Web.Security.SingleSignOn
    • System.Web.Security.SingleSignOn.ClaimsTransform
    • System.Web.Security.SingleSignOn.Permissions
  • Compile the solution
  • The DLL that is created will need to be placed in the bin directory of your website.
  • Make changes to your web.config (explained in a later section).

I will walk through a bit of the code. Here is the first snippet of code. We start listening for the AuthenticateRequest event. All other events pass through untouched.

public void Init(HttpApplication context)
{
//Start listening for each authentication request
context.AuthenticateRequest += new EventHandler(context_AuthenticateRequest);
}

Now, what do we do when this event is fired off? To shorten the namespace I added the statement

using SSO = System.Web.Security.SingleSignOn;

First off, we need to get the information that ADFS has sent us by casting the User.Identity into the ADFS object SingleSignOnIdentity.

public void context_AuthenticateRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
//By the time the request gets to here, it should have been authenticated
//against ADFS.
SSO.SingleSignOnIdentity id = (SSO.SingleSignOnIdentity)app.User.Identity;

At this point you will have access to the user’s Identity and any claims coming from the ADFS server. You can access them through id.SecurityPropertyCollection. You can use them to populate the new user account. You can iterate through the claims with the following code

foreach(SecurityProperty sp in id.SecurityPropertyCollection)
{
    Console.WriteLine(sp.Name);
    Console.WriteLine(sp.Value);
}

Subsequent, we check to determine in the event the use currently exists within the database by utilizing the DNN API function GetUserByName. If it doesn’t, then the user is created by the common DNN API function CreateUser and logged in. If the user does exist currently then we log them in automatically. The user will automatically be added to the Registered Users and Subscribers security groups.

//'See if user exists in DNN Portal user DB
UserInfo objUserInfo = UserController.GetUserByName(currentPortal.PortalId, id.Name);
//' user does exist - try to create on the fly
if (objUserInfo == null)
{
    objUserInfo = new UserInfo();
    objUserInfo.DisplayName = id.Name;
    objUserInfo.FirstName = id.Name;
    objUserInfo.LastName = id.Name;
    objUserInfo.Username = id.Name;
    objUserInfo.Membership.Password = "AReallyStrongPassword";
    objUserInfo.PortalID = currentPortal.PortalId;
    objUserInfo.Email = id.Name;
    UserCreateStatus objUserCreateStatus = UserController.CreateUser(ref objUserInfo);
    //See if the user was added successfully
    if (objUserCreateStatus == UserCreateStatus.Success)
    {
        //We have created them successfully, so let them into the site
        LetsLogUserIn(objUserInfo);
    }
    else
    {
        //This will send the error to the error log, but the user will experience an infinite loop
        throw new Exception("User not created successfully: " + objUserInfo.Username + "- " +         objUserCreateStatus.ToString());
}

Here is the LetsLogUserIn function:

private void LetsLogUserIn(UserInfo objUserInfo)
{
    try
    {
    //Get the current portal
    PortalSettings currentPortal = PortalController.GetCurrentPortalSettings();
    //set the language to the default language of the portal
    Localization.SetLanguage(currentPortal.DefaultLanguage);
    //Log the user in
        UserController.UserLogin(currentPortal.PortalId,
            objUserInfo,
            currentPortal.PortalName,
            HttpContext.Current.Request.UserHostAddress,
            false);
    }
    catch(Exception ex)
    {
        Exceptions.LogException(ex);
    }
}

Web.Config

We need to make several changes to the web.config. First we need to make the changes necessary for ADFS and then we need to make changes for our HTTPModule.

The ADFS changes are the standard web.config changes you would do for any ADFS claims-aware site. You first need to add the section groups to your web.config.

<sectionGroup name="system.web">
    <section name="websso" type="System.Web.Security.SingleSignOn.WebSsoConfigurationHandler,                                  System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />
</sectionGroup>

Then you need to add the actual section. The <returnurl> needs to be EXACTLY what is put into ADFS. Remember, this URL needs to have a / at the end to prevent ADFS from posting to a directory listing. The <fs> element needs to be changed to reflect the name of your server.

<system.web>

    <websso>
        <authenticationrequired />
        <auditlevel>55</auditlevel>
        <urls>
            <returnurl>https://your_application/</returnurl>
        </urls>
        <fs>https://fs-server/adfs/fs/federationserverservice.asmx</fs>
    </websso>

</system.web>

If you would like to have logging (and who doesn’t like loggingJ) you will need to add the following section at the end of your web.config

<configuration>

<system.diagnostics>
     <switches>
       <!-- enables full debug logging -->
       <add name="WebSsoDebugLevel" value="255" />
     </switches>
     <trace autoflush="true" indentsize="3">
       <listeners>
         <!-- either create a c:\logs directory and grant Network Service permission to write to it, or remove this listener -->
         <add name="MyListener"
              type="System.Web.Security.SingleSignOn.BoundedSizeLogFileTraceListener, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null"
              initializeData="c:\logs\webagent.log" />
       </listeners>
     </trace>
   </system.diagnostics>
</configuration>

Ultimately, you need to add the HTTPModules for ADFS and our HTTPModule. Order matters a good deal for the HTTPModules. We require the ADFS Web Agent to become listed first, to ensure that any request will likely be redirected to our partner’s logon screen. Right away following the Web Agent should be our HTTPModule. This will make sure that we'll automatically log them on just before DNN even see it.

<system.web>
<httpModules>
    <add name="Identity Federation Services Application Authentication Module"                       type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />
 
    <add name="HTTP_Module_Test" type="HTTP_Module_Test.SSO_Module, HTTP_Module_Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>

There you have it Hope it helps someone.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.




DotNetNuke 7.4 Hosting - ASPHostPortal.com :: How to Improved event logging in DNN 7.4

clock Februarie 25, 2015 06:06 by author Mark

Today I will explains about How to Improved event logging in DNN 7.4, let me to tell you ..

Everyone who has opened up the event log in DNN has undoubtedly been struck by the fact that there is a lot of information there. The event log is like a huge bin into which the platform and modules can drop anything they wish to log. To help you navigate the flood of information we use color coding and filters. This will allow you to answer questions like “User X had an error when they went to page Y. What happened?” You’d probably want to know when user X had this experience as the log is basically just a chronological list of events. But the event log is not able to answer the question “Who else had this error?” and “Is this error recurring often?” The event log was simply not designed to answer those questions. To address this, I’ve made a few changes to the framework which I’ll elaborate on.

An important shortcoming in the old event log design

The way the old event log worked was that it logged things like portal id, user id, tab id, time and type of event (error, information, etc) into separate fields in the EventLog table in SQL. But the most important parts of an error were stuffed into an XML blurb that was stored in a field (called LogProperties) of type “Text”. This makes it extremely complicated to drill down to the questions mentioned above in SQL. What you see on screen is that XML pumped through some XSL to make it look nice. But there is no way to select and sort by the various details of an error. Only on the main fields like user id, etc.

Solution approach

The way I’ve approached this is to first change the data layer without changing anything further up in the application. In other words: you won’t notice any changes (yet) in the UI. But we should begin logging the specifics of errors (i.e. exceptions) in a way that allows us to filter by them and get meta information. Like how often a specific error occurs, etc.
In the future I’d love to revise the event log module to allow users to quickly drill down into issues plaguing their DNN installation. But given that we are in a transition period where admin module will be broken out of the main platform into their own projects, it is not the right moment to start working on this.

Changes

If we’re logging an exception what we’ll do is to create a (MD5) hash of the complete StackTrace field of that exception. The exception is stored into its own table called Exceptions and the hash serves as the key. The ExceptionHash field is added to the Eventlog so for error events we can link to the exception. Obviously, if we have the exception already in the table, we don’t create a new record. We also no longer log the exception in the LogProperties blurb. This should save on the total size of the EventLog table.
Secondly we create a table ExceptionEvent which attaches to the EventLog table to just add a few typical fields if an exception is being logged like portal id, tab id, and user id. The changed result in the following structure:

Final words

As said before there is still work to be done to improve the event log (notably in the UI). This is but a first step and from now on people will be logging the exceptions in their own table. For those of you who work in support: you can already leverage these changes by going to SQL directly to analyze errors.

Best DotNetNuke 7.4 Hosting Recommendation

ASPHostPortal.com

ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability



About ASPHostPortal.com

We’re a company that works differently to most. Value is what we output and help our customers achieve, not how much money we put in the bank. It’s not because we are altruistic. It’s based on an even simpler principle. "Do good things, and good things will come to you".

Success for us is something that is continually experienced, not something that is reached. For us it is all about the experience – more than the journey. Life is a continual experience. We see the Internet as being an incredible amplifier to the experience of life for all of us. It can help humanity come together to explode in knowledge exploration and discussion. It is continual enlightenment of new ideas, experiences, and passions


Author Link


Corporate Address (Location)

ASPHostPortal
170 W 56th Street, Suite 121
New York, NY 10019
United States

Tag cloud

Sign in