DotNetNuke Hosting with ASPHostPortal.com

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

DotNetNuke Hosting - ASPHostPortal.com :: Cleaning and Re-Indexing your DotNetNuke Search Tables

clock Februarie 5, 2015 06:56 by author Dan

Today we will tell you about Cleaning and Re-Indexing your DotNetNuke Search Tables. A week ago, we put a great deal of exertion into upgrades to the inquiry and RSS parts of Efficion's Articles module. As a feature of that, we recognized that regardless of how often you hit the Re-Index substance interface on the Host-> search Admin page, the connections never really get redesigned. As we dug further, it got to be clear that to upgrade the connections utilized by DNN's pursuit and RSS, you really need to cleanse the hunt tables.

This has suggestions past our module so I thought I'd impart the steps as a decent practice to do each once in momentarily on your DNN site to verify you Search Results and RSS Feeds are connecting legitimately.

Along these lines, if your query items aren't showing or connecting the route you'd like them to, the first thing you ought to attempt is clearing and re-indexing the inquiry tables. To do this:

1.) Login as host or an alternate superuser account

2.) Go to the Host->sql tab and run the accompanying as script:

delete {databaseOwner}{objectQualifier}SearchItemWordPosition
delete {databaseOwner}{objectQualifier}SearchItemWord
delete {databaseOwner}{objectQualifier}SearchWord
delete {databaseOwner}{objectQualifier}SearchItem

3.) Go to Host -> Search Admin and click the Re-Index substance catch. It may take for a little while for the re-indexing to finish so provide for it a couple of hours before testing once more.

On the off chance that this does not work, there may be an alternate module that is creating issues with Search. Take a gander at your Event Viewer and check whether you can discover any slip messages identifying with hunt.

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 With ASPHostPortal.com :: How to Fix DotNetNuke 7 DNN Edit Button Not Work

clock Februarie 4, 2015 05:35 by author Mark

After a clean install of DotNetNuke version 7.00.05, the Edit buttons would not work, and the page would repeatedly redirect to the homepage when clicking Edit. I did not experience this issue on installations which I upgraded.  I have uncovered three solutions which work, or at least work around, to solve the problem.

Method 1

One way to get around this problem is to use the Ribbon Bar instead of the Control Bar as the Control Panel setting. To make this change, navigate to the “Host” panel, click “Host Settings”, click the “Other Settings” tab. Set the “Control Panel” setting to “RibbonBar”.

Method 2

The second method, and one of the methods which actually solves the “ControlBar” issue, is to edit the web.config file. I found this solution at chaydigital. This method does work to solve the problem, but I have concerns about the waste of system resources it could cause as well as possibly creating other errors.
Open the web.config file in Notepad.exe or another editor. Find the system.webServer section, and change this section:

<system.webServer>
   <modules>

To this:

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true" >

Method 3

Due to my concerns with placing a global fix in my web.config which might cause other errors to crop up, I decided to create two new installs on the same machine. One install was with the 7.00.05 full install package of DotNetNuke. The other install was with an older version of DotNetNuke 6 to which I applied the 7.00.05 upgrade. As suspected, in the full install website, the Edit button would not work. In the upgraded website, the Edit button worked as expected.

I decided to pull the two web.config files and compare them using a Powershell script. There were many differences in the two, but I found one difference in particular which seems to have solved my problem. The upgraded website had an entry for the FormsAuthentication module in the system.webServer section. and this entry was missing from the full install. This may be by design, I am not sure. But putting that entry in web.config on the full install version solved my issue.
Please attempt editing your web.config file at your own risk. Note that the system.webServer and modules nodes should already be there along with several other entries. The only entries you should add are in red type.

<system.webServer>
   <modules>
      <remove name="FormsAuthentication" />
     <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="" />
</modules>

<system.webServer>

Hope this helps you out. If you find additional solutions to the issue, let me know. I will gladly add them to the list.

Best Recommended DotNetNuke Hosting

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 :: Single Sign-on (SSO) and Modulesharing in DotNetNuke CE 06.01.00 and above

clock Januarie 29, 2015 06:42 by author Dan

One issue that is confronting you now and again as a dotnetnuke expert is the smoldering yearning of clients to have a solitary sign-on answer for their multi-entryway framework. Regularly they have diverse entryways for their organization offices or separate intranet and web entrances or some other multiportal needs. At the same time none of these clients comprehend the need of logging seperatly into each and every entryway! What's more for the framework executives it is a bad dream to keep all these client accounts in sync! A considerable measure of business and open source modules and suppliers served to take care of this issue previously.

An alternate inconvenience is the inconceivability to impart content between entries. Consider  a desktop program site and his portable friendly (acknowledged as two entries). On the off chance that you compose an article in the desktop gateway and you need to demonstrate this uncommon article on the portable entry as well, what did you need to do ? Yes, duplicate and glue! Conceivable, however not exceptionally rich!

Since Version 6.1  of Dotnetnuke  there is an answer for this in the Proffessional Version (PE). Lamentably this should be excluded in the group version of DNN. Yet you ought to realize that the usefulness is actualized in the center and just the organization module is inadequate in the CE form! So you have the capacity utilize this, even in  CE, with negligible changes straightforwardly in the database:

Base of all the functionality is the new table “PortalGroups”:

For every group of portals we need to insert here one record:

Next to the Portalgroupname and the Portalgroupdescription, which are selfexplaining, and the normal fields Createdondate, Createdbyuserid and so forth , just  Masterportalid and Authenticationdomain  are intriguing. Masterportalid  ought to be supplanted with the portalid of the entryway which ought to be utilized as the entry where the client logs later on. Authenticationdomain ought to be loaded with the space name of the expert entryway (e.g. www.yourdomain.com)

Presently we need to fill in the Portalgroupid of the recently made portalgroup into the field with the same name in the comparing Portal records and our SSO arrangement is finished:

Tip: Eventually you have to recycle the Applicationpool to see your results!

And now see how this affects your portal administration:

Add an existing module – before

 

Add an existing module – after

And after login in the main portal the user is also automatically logged in into the child portal and all users of both portals show up together in the user administration!

Please make a special effort to be mindful of this:

  • A client made on the expert entryway is known on all entrances of the entrance bunch
  • Login at an entryway consequently logs you into all entrances with the same area (incl. subdomains + childportals). SSO for different areas does NOT work (yet you can log in with the same client certifications)

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 :: Bug Custom profile properties cannot be selected for custom registration form (DNN 7)

clock Januarie 22, 2015 06:59 by author Dan

DNN 7 permits customization of the enlistment structure through a simple interface, with intellisense. You simply select "Custom" for Registration Form Type in Admin - Site Settings - User Account Settings tab and you can include all the fields you like to your enlistment structure.

Site Settings

Right now of composing, this doesn't appear to function admirably with custom enlistment properties (i.e. fields you have made yourself through the "Profile Settings - Add New Profile Property catch underneath on the same tab). On the off chance that you attempt to sort a custom property's name on the Registration Fields box, it simply won't come up (despite the fact that its been accounted for that properties of datatype "Content" do come up).

With a specific end goal to make these properties accessible to your enrollment structure until a fix is connected to this, you can utilize SSMS (gave that you have entry and experience utilizing it) and do the accompanying:

  • Go to your DNN database

  • Open the "Portalsettings" table for alter and discover the record that has the worth "Registration_registrationfields" in the "Settingname" field

  • You'll see that the "Settingvalue" field is a comma-delimited rundown containing the field monikers of the properties that are to be shown on the custom enlistment structure. Include the nom de plumes you could call your own fields in the rundown.

  • Redesign the table and go to your DNN establishment (as the Host client), and click on Tools - Clear Cache

  • In the event that everything goes well, you'll see that the "Enrollment Fields" box now contains your properties as well, and they will seem regularly on the enlistment structure.

An alternate approach to do this is to utilize the Host - SQL segment on your DNN establishment. To see the current profile properties that are shown on the custom enrollment structure, sort this into the Script box and click "Run Script":

SELECT
SettingValue
FROM  {databaseOwner}{objectQualifier}PortalSettings
WHERE
SettingName = 'Registration_RegistrationFields'

With a specific end goal to include one or more fields toward the end of the rundown, you must run something like this (where "Myfield" is your custom field's assumed name). Keep in mind the comma and utilize no spaces.

UPDATE

{databaseOwner}{objectQualifier}PortalSettings
SET
SettingValue = SettingValue + ',MyField'
WHERE
SettingName = 'Registration_RegistrationFields'

After you run it, go to Tools and click Clear Cache and you will see your fields on the "Enrollment Fields" box in the Admin - Site Settings - User Account Settings tab.

On the off chance that despite everything you require more power and customization with your custom enlistment page, take a gander at the Dynamic Registration module from Datasprings - right now of composing this, form 5.0 has quite recently been discharged for DNN 7.x.

Standard disclaimer: When you do stuff like the above on your database, you do it at your own danger, and I have no obligation if you harm your database, your machine, or the universe. Continuously have a reinforcement helpful!

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 :: Managing 'Couldn't load type "Dotnetnuke.common.global"

clock Januarie 15, 2015 06:50 by author Dan

Introduction

Today we will show you about Managing 'Couldn't load type "Dotnetnuke.common.global".There are a thousand reasons this feared message can show up, yet suppose it is possible that it shows up on a site that you are 100% certain no one has messed with in any capacity other than transferring documents for a long while.

The problem

The error itself is as follows:
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Could not load type 'DotNetNuke.Common.Global'.

Source Error:

Line 1:  <%@ Application Inherits="DotNetNuke.Common.Global" Language="VB" %>
Source File: /global.asax    Line: 1

The setting

That was precisely the case I confronted today when a customer called me and reported the lapse. The customer was totally certain that no progressions had been performed other than transferring a few records, both to the application and the server itself (no redesigns, no apppool changes, no iis design changes). Just to be protected, I checked the dates of the records in the container envelope and additionally the date of the global.asax record and all had not been changed amid the recent months.

Conceivable reasons

Seeking the Web, I was panicked to see that there were in any event a couple of dozen conceivable reasons for this lapse. Case in point, there's a multi-page string in the Dotnetnuke discussions dicussing this blunder. Unfortunately, the greater part of the cases respected moves up to the center stage, recompiling or other stuff that had been changed.

So what else could not be right? All things considered, I again found than when something appears incomprehensible, it doesn't generally must be some amazingly confounded specialized issue.

Solution

The customer had admittance to the full site root by means of a FTP client. After attempting to transfer stuff, the customer coincidentally moved the App_data organizer inside an alternate envelope. That was it! I moved the App_data organizer once more to the root and everything was fine once more.

What I realized from this occurrence: Always search for the least difficult conceivable reason for a blunder first. Trust it bails some of you out there.

Best Recommendation for DotNetNuke Hosting

ASPHostPortal.com is The Leader of Best DotNetNuke Hosting Provider. They provide DotNetNuke Hosting with Affordable Price, Fast & Stable Network, and Structured Recovery System. They start their hosting plan from $1/month. With that price, your data will be safe and always properly backed up. Moreover, they also provide uptime and 30 days money back guarantees for all hosting plan. They have 5 different data centers in the world that can give best support for your DotNetNuke site. With their complete features and cheap price, your DotNetNuke site will be turn into great performance.



DotNetNuke Hosting - ASPHostPortal.com :: Easily Embed a Google Hangout on Your Website

clock Januarie 13, 2015 05:51 by author Ben

If you’re not sure what a Google Hangout is, well…  You’ve been under a rock for a while.  Simply put, this is a very easy and web-based way to talk to someone face-to-face, from any nearly web-based device that has a web browser.  You can do this one-on-one like with Skype, or you can use this for more of a public webinar kind of use case.  It’s part of the whole Google+ suite of features.  Even if you’re not actively using Google+, this feature is pretty sweet.  It’s amazing what they’re able to enable you to do with a web browser!  If you’re doing the latter, you might want to read on…


It’s been a long while since I’ve released a NEW module into the DotNetNuke community – maybe at least a year ago since my last release.  It’s been even longer since I’ve blogged here, and I am sorry for that.  But as I said on twitter the other night, I’m back! I’ve had some modules go out into the wild that you might not have heard of, including a couple for user groups as proof of concepts, and even an update to the Media Module in February.  (Do a search for “user group labs” for the others on codeplex.)

Google Hangout for DNN

If you’re reading this and not using DNN, sorry.  But this is an open source module, so if you’re a developer, you can take a look at the source for this module (and many of my others) on github.  You’ll be able to see this module in action next week though for a live DNN webinar with

Peter Donker (T|B|L), Joe Brinkman (T|B|L), and myself.  You can follow our twitter feeds to get those details as soon as they’re available.

“Hey Will.  Why should I build a module for this?  Google Hangouts has an embed code.  I can just copy and paste it.”

If you are asking yourself that, you’re absolutely right, and there’s nothing to prevent you from doing that.  However, having a module to manage this gives you the benefit of structured content, ability to delegate management of Hangouts to non-technical people, and there are more features and purposes planned for this module that will be announced later.

DNN Hangout Features

This is a first release, so there is going to of course be a minimal number of features, and they include:

    Quickly add a Google Hangout via copy/paste
    Template available to change how the module is displayed to users
    Show start date/time and duration for future/past Hangouts

For those of you that are developers, here is a feature list for you!

    Uses content items for the DAL
    Uses DNN token replace
    Uses PortalSecurity for user input filtering

This version 01.00.00 release has the following minimum requirements.

    DNN version 07.03.04
    SQL Server newer
    Microsoft.Net version 4.0 or newer

How do I use DNN hangout?

Today, the features are simple…  You create a hangout in Google Hangout.  It can be a regular hangout, but what this module is really meant for is On Air Hangouts.  These are the kind of hangouts where you would be broadcasting an even to the public.

Next, you copy the hangout URL, video ID, or embed code.  This module will accept them all and magically grab the information it needs from you.  Go into the module’s edit view to manage those settings.

Once you see the edit view, add the relevant information, including the Google Hangout information you copied earlier.

You even have some sample Google Hangout addresses to test and compare with to make sure you’re adding the right information.  As long as you add the right address, it will be parsed and the video ID will be the only thing that remains once you save.

Now that you have the right information in place, you can save your new hangout and you’ll see it immediately on the page.

This is probably not how you want your hangout to be displayed on you site.  Don’t worry…  You’re covered with the module settings.  Just update the default template with your own HTML and use the placeholder tokens to add the hangout information in the places of the HTML that you want.  Once you save it, your changes will be reflected on the page.  You should know that this module also supports DNN tokens, so feel free to add things like user personalization if you want.


Best DotNetNuke Hosting

Following reviewed for Best ASP.NET hosting companies that help with DotNetNuke, ASPHostPortal is Best ASP.NET Hosting for DotNetNuke Recommendation. They give 99,99% uptime assured, as well as 30 Days Money back assured, best friendly customer service, and many more.



DotNetNuke Hosting with ASPHostPortal :: How to optimise DotNetNuke site for speed by improving page load, caching and use of CDN

clock Desember 23, 2014 05:42 by author Mark

How to optimise DotNetNuke speed by improving page load, caching and use of CDN

This is a real example of what can be done to get your sites running faster before upgrading the hardware.
Starting point - this blog mattjura.com with following specification: Server: Microsoft Windows NT 6.1.7601 Service Pack 1, IIS/7.5, .Net 4.0 and SQL Server 2008 R2 Express edition, 2GB RAM, 1GHZ CPU – running multiple sites. DotNetNuke

Stats before optimisation

WebPageTest.org results: Load time: 5.546s, First byte 1.491s, Start render 3.675s, Requests 66,

YSlow results: Overall performance score 70 Grade C
The page has a total of 46 components and a total weight of 558.8K bytes
Primed cache: HTTP Requests - 4, Total Weight - 56.2K

Google Page Speed results:
Page Speed Score of 54 (out of 100)
Not a good set of results but here are the steps to get the site running faster.

Server configuration - actions to complete

Enable content compression in: IIS Manager >> Compression
Add HTTP response headers in: IIS Manager >> HTTP response headers
(Enable HTTP keep alive and Expire web content after 7 days or as required)
Enable output caching in: IIS Manager >> Output Caching for the following file extensions .css, .gif, .jpg, .js and .png files (User-mode caching, using file change notifications)
This may not always be possible on the shared servers but if you do not ask you do not get.

Results:
WebPageTest results: Load time 3.82, First byte 1.489, Start render 2.751 Keep alive A, Compress Transfer A
YSlow results: Overall performance score 80 Grade C
Google Page Speed results: overall PageSpeed Score of 63 (out of 100)

DNN upgrade and configuration

Upgrade the site 6.02.05 >> 7.00.05 >> 7.03.04 (latest version)
Change the following settings in host >> host settings:
Basic settings - turn off copyright credits
Performance settings - cache setting heavy
Authenticated cacheability - Public
Client resource management - Enable Composite Files
Client resource management - Minify CSS
Client resource management - Minify JS
Scheduler mode - Timer Method
Enable Event Log Buffer - on
Auto sync file system - off
In Admin >> Site Settings turn off Enable Skin Widgets if not used

Results:
WebPageTest results: Load time 3.78, First byte 0.995, Start render 2.340 Keep alive A, Compress Transfer A, Effective use of CDN - yes
YSlow results: Overall performance score 83 Grade B
The page has a total of 34 components and a total weight of 331.9K bytes
Primed cache: HTTP Requests - 4, Total Weight - 23.4K
Google Page Speed results: overall PageSpeed Score of 88 (out of 100)

OK - getting better but still room for improvement.

Use Content Delivery Network

A CDN service will take all of your images, java script, and CSS (Cascading Style Sheets) and host them on to their network to quickly load them on your visitors browsers. Another benefit is that a CDN usually has a huge network of servers that are closer to your potential visitor ensuring that your site will load quickly wherever in the world they are visiting.
It has its drawback as you have to change your DNS settings to one supplied by CloudFlare however the process is very simple and takes 5 minutes. If your site has google ads or third party content you should try the rocket optimiser - free on all plans. Please check your site works as normal with rocket optimizer as it is still in beta at the time of writing this post.

Results:
WebPageTest results: Load time 3.01, First byte 0.995, start render 2.120 Keep alive A, Compress Transfer A, Effective use of CDN - yes
YSlow results: Overall performance score 94 Grade A !
The page has a total of 28 components and a total weight of 225.4K bytes
Primed cache: HTTP Requests - 2, Total Weight - 16.7K
Google Page Speed results: overall PageSpeed Score of 88 (out of 100)

Images, CSS, HTML

First to optimise the images, css files, and the code, implement sprites, optimise fav icon, replace deprecated menu.

Results:
WebPageTest results: Load time 2.361, First byte 1.230, start render 1.594 Keep alive A, Compress Transfer A, Effective use of CDN - yes
YSlow results: Overall performance score 95 Grade A !
The page has a total of 20 components and a total weight of 217.4K bytes
Primed cache: HTTP Requests - 2, Total Weight - 16.4K
Google Page Speed results: overall PageSpeed Score of 88 (out of 100)

How much has the speed of the site improved

WebPageTest results:
Load time improvement from 5.546 to 2.361 seconds
Start render improvement from 3.675 to 1.230 seconds
YSlow results:
Grade improvement from Grade C & score 70 to Grade A & score 95
Improvement from 46 components and a total weight of 558.8K bytes to 20 components and a total weight of 217.4K bytes
Google Page Speed
Improvement from PageSpeed 54 to PageSpeed 88

Note: "Without adding additional hardware I have managed to lower the load speed considerably. To improve it even more I could add more RAM and additional CPU on the server and move the database to its own full web edition SQL server, however with a current speed load below 3 seconds I could not justify the costs in this case. Please let me know if you have any other suggestions or what is your experience with the speed of your DNN sites".



ASPHostPortal.com Proudly Announces DotNetNuke 7.3.4 Hosting

clock Desember 22, 2014 11:07 by author Dan

ASPHostPortal.com, The Best, Cheap and Recommended ASP.NET Hosting proudly announces DotNetNuke 7.3.4 Hosting with a combination of affordable price, fast & stable network and high customer satisfaction rate. ASPHostPortal.com provides full trust web hosting services for DotNetNuke 7.3.4 site.

DNN (formerly DotNetNuke) provides a suite of solutions for creating rich, rewarding online experiences for customers, partners and employees. DNN products and technology are the foundation for 750,000+ websites worldwide. In addition to commercial CMS and social community solutions, DNN is the steward of the DotNetNuke Open Source Project.

DNN Platform 7.3.4 has been released. The 7.3.4 release is a stabilization release. DNN 7.3.4 is a smaller maintenance release than normal and is focused on addressing the most serious platform issues. This version release to solve some issue, such as : fixed issue where site settings were not updating correctly in multi-language installations, fixed issue where partial site templates were not working correctly with child sites, fixed issue where links created in Telerik RadEditor were not correct and many others.

ASPHostPortal.com, a windows-based hosting service provider offers the most reliable and stable DotNetNuke 7.3.4 web hosting infrastructure on the net with great features, fast and secure servers. Customer’s site will be hosted in USA, Amsterdams or Singapore based server. All of our windows hosting plan supports DotNetNuke 7.3.4 and you can install DotNetNuke 7.3.4 with just one click. We offer professional DotNetnuke 7.3.4 site start from $5/month. The following are the reasons why you should choose and keep trust with us :

Uptime & Support Guarantees
We are so confident in Windows hosting services, we not only provide you with a 30 days money back guarantee, but also give 99.9% uptime guarantee.

Best and Friendly Support
Our support team is extremely fast and can help you with setting up and using DotNetNuke 7.3.4 on your account. Our customer support will help you 24 hours a day, 7 days a week and 365 days a year.

Dedicated Application Pool
Your site will be hosted using isolated application pool in order to meet maximum security standard and reliability.

ASPHostPortal.com is The Best, Cheap and Recommended ASP.NET Hosting. With the DotNetNuke 7.3.4 in their hosting deal will make ASPHostPortal continue to be the Best ASP.NET hosting providers. To learn more about DotNetNuke 7.3.4 Hosting, please visit http://asphostportal.com/DotNetNuke-734-Hosting

About ASPHostPortal.com :

ASPHostPortal.com is The Best, Cheap and Recommended ASP.NET Hosting. ASPHostPortal.com has ability to support the latest Microsoft and ASP.NET technology, such as: 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 include shared hosting, reseller hosting, and sharepoint hosting, with speciality in ASP.NET, SQL Server, and architecting highly scalable solutions. ASPHostPortal.com strives to supply probably the most technologically advanced hosting solutions available to all consumers the world over. Protection, trustworthiness, and performance are on the core of hosting operations to make certain each and every website and/or software hosted is so secured and performs at the best possible level.



DotNetNuke Hosting with ASPHostPortal :: How To Creating a webservice in DotNetNuke 7

clock Desember 19, 2014 06:57 by author Mark

I have recently been assigned to built a DotNetNuke web service to allow a windows application (or any type of web client for that matter) the ability to manage DotNetNuke user accounts (create, change roles, delete, retrieve email address, etc.).
Since I had a hard time finding a correct code sample or documentation that actually applies to DotNetNuke 7 and accessing it without being previously logged in to DotNetNuke, it was difficult to built anything. I finally found out how to do it correctly so I tough I would put my efforts to some use and write a blog post explaining how to do it step by step.

The basics

That said, let's begin by the basics and just make a publicly accessible web service that allows anyone to ping the web service and get a pong back. For that we will use the new DotNetNuke 7 Services Framework which makes it quite simple if you know how to use it.
In order to make a web service that will work withing DotNetNuke 7, you will need to fire up Visual Studio and create a Class Library project (c# or VB but all examples here will be in c#).
That done, we will then reference some required DotNetNuke 7 required libraries (using the Add Reference dialog box), here's the list:

  • DotNetNuke.dll
  • DotNetNuke.Web.dll
  • System.Net.Http.dll
  • System.Net.Http.Formatting.dll
  • System.Web.Http.dll

Then we also need to reference the System.Web class from the .NET tab of the same dialog box.
Finally, we neet to set the output path of the project to the DotNetNuke bin directory and we are ready to code.
Here is the code, the explanations follow:

  • We simply start with some using statements for our requirements as shown above
  • We create a namespace for our service and whatever name we use here will be part of the url. I used MyService just for this example but use any name that makes sense for your service.
  • Now we create a public class for our controller. You can create multiple controllers if you need to and the controller is just a group of related actions that make sense to group together. In my real project I have a PingController for testing purposes, a UsersController for any actions that relate to user accounts etc. Just use a name that makes sense since it will also show up in the url. Two things to be careful here:
  • The name of your controller must end with the word Controller but only what comes before it will show in the url, so for PingController, only Ping will show in the url path.
  • It must inherit DnnApiController so it will use the DotNetNuke Services Framework.
  • Then we create the actual action, in our case, PublicPing. It is just a simple method which return an HttpResponseMessage and can have a few attributes. By default the new services framework will respond only to host users and you need to explicitly allow other access rights if needed, in this case the [AllowAnonymous] makes this method (or action if you prefer) available to anyone without credentials. The second attribute, [HttpGet] will make this action respond to HTTP GET verb, which is usually used when requesting some date from the web server.
  • Finally in that action, you insert whatever code you action needs to do, in this case just return the string "Pong!", just remember that you need to return an HttpResponseMessage and not a string or int or other object.

Ok so our controller and action is done, now we just need to map that to an actual URL and that what the last part of the previous code does. In essence this code tells DotNetNuke to map a certain url pattern to the methods defined in your class. You can use that code as is just replacing MyService by whatever your service name is.

Testing:

That's all there is to it, your service is ready!  To test it, first compile it, then just navigate to http://yourdomain/DesktopModules/MyService/API/Ping/PublicPing and you should see "Pong!" in your browser as a response.

Passing parameters

Ok, so the basic code above is working but it doesn't do anything useful. Lets add something more useful by creating an action that will give us the email address for a specific user id.
Again, here's the code and the explanations will follow (place the code inside the same namespace as the previous one)

  • First we build a UsersController class that will hold all actions related to user accounts, it is not absolutely necessary, you can have many actions in the same controller, however since this action is not at all related to our PingController, let'a make a new one more descriptive.
  • We then make a GetEmail action (method) that will accept a userid parameter. The [RequireHost] parameter here will make it accessible only to host users, we'll see later other authentication options.
  • The code in the method itself is pretty much self explanatory. The only interesting thing to note here is that because our class inherits DnnApiController, we already have a PortalSettings object available. That's the big advantage of making use of the DotNetNuke Services Framework. You will have a ModuleInfo object to represent your module (if there is one with the same name as your service, which is not necessary such in this case), a PortalSettings object that represents the portal at the domain name used to access the service (portal alias) and finally a UserInfo object representing the user that accessed the web service.

Testing:

If we now navigate to http://yourdomain/MyService/API/Users/GetEmail?userid=2 you should receive the email address back from the server unless of course that userid does not exist, make sure to test with a userid that actually exists for that portal. If you where not previously connected with a host account, then you will be asked for credentials.

Limiting access to certain roles

Ok, that works but you need to give host credentials to any person needing to use your webservice. To avoid that you can replace [RequireHost] by [DnnAuthorize(StaticRoles="Administrators")] which will limit access to administrators. Better but you still need to give them an admin account. So the easy way to give only limited access would be to create a new role in DotNetNuke just for your web service and replace Administrators by that specific role name in the authentication parameter.

Using HttpPost : (answer to a comment down bellow)

To answer Massod comment bellow, it is almost the same thing but you need to create an object to contain the posted data.
Let's make a simple ping that uses POST, first we need to create an object that will contain the posted data such as:

Then we create the service method something like this:

Note that normally, a post would only return ok and no message, I am just doing this so we can test here.

Now since this is a POST verb, we can't test it by only using url parameters, we need to make an html file with a form to test it out. It would be someting like this:

The important thing to not here is that you can't just create your POST method taking a string even if this is only what you need, you do need to create an object that will take your parameters.
Also don't forget that this is only for testing, you usually don't want to make this publicly available, you would normally use another parameter than [AllowAnonymous] such as  [DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.View)] and [ValidateAntiForgeryToken] unless you really want that to be public.
Let me know if you have any more questions.



DotNetNuke Hosting with ASPHostPortal.com :: Security Actions to Safeguard Your DotNetNuke CMS

clock Desember 18, 2014 05:46 by author Ben

DNN Security Out Of the Box
DNN (DotNetNuke) is currently the premier CMS of the US Government as a result of it's robust security and integration with current safety functions. Nevertheless even DNN is not totally excellent out of the box, and there are numerous additional safety attributes that can be put in location depending on your particular DNN eCommerce requirements. These security suggestions variety from easy to complex and cover many various aspects of possible security risks. No guide can accurately assess your particular safety requirements. In the event you would prefer to adequately secure your DNN web site, contact Clarity these days.

Improve Password Complexity and Use Specifications

Increasing password complexity is among the easiest and most successful methods to significantly boost security. Probably the most common and successful requirements are length and complexity. eight or much more characters along with a minimum of a single capital letter, one lowercase letter and 1 number is a good begin. You are able to contemplate requiring a non-alphanumeric character as well as putting restrictions on how lengthy a password may be used. Even with powerful password needs, you might be only preventing against brute force attacks.

Modify 'Host' and 'Admin' Passwords and Limit Their Use

Altering the Host and Admin password to incredibly complicated passwords is the single most successful step for safety, as each accounts are recognized to exist and are the most vulnerable to brute force attacks as a result of that. Make sure that any password you set for these accounts exceeds the password recommendations listed above. You should also think about limiting access to these accounts, as they may be essentially the most powerful accounts and would leave your site essentially the most vulnerable if they have been compromised.

Hash Password Storage

By default DotNetNuke utilizes encryption of user passwords. This provides a good degree of protection, and enables you to retrieve your password as encryption is a reversible operation. Nonetheless, should you usually do not want to help password retrieval, or want to make certain maximum protection, you may select to utilize Hashing as an alternative. Hashing is really a non-reversible operation, so even if your database is accessed or stolen, a hacker can't reverse engineer your password.

 



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


 photo ahp banner aspnet-01_zps87l92lcl.png

Corporate Address (Location)

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

Tag cloud

Sign in