Saturday, July 26, 2014

Do you really need role base pages in dotnetnuke?

0 comments

Introduction & Background

I have experience working on an existing dnn site that has lots of custom features and I join the team to contribute as developer, lead or code reviewer. Many times during last 8 years of such experience, I found lots of people are creating role base pages in dotnetnuke and implement some custom login in either login module or somewhere else that can check the role and redirect.

Is this really required?

Example Scenario

Lets say you are working on a hospital portal in dotnetnuke and want to prepare a dashboard for care taker, admin, manager, and bunch of other roles. 

If you create different pages and drop a single module for role wise dashboard, and use some custom logic to redirect user after login to that page, that is something that needs a second though.

Dotnetnuke security inherited from portal > Tab > Module. Inheriting up to module level is recommended for most of the cases.

I would create a page(tab) and drop all the modules that I prepared for role wise dashboards. I would do multiple modules to make things separate and clean but drop all modules to the same page. In module settings of each module, uncheck the inherit permission button and check the role which is expected to see this module. 

Now, without having too much of coding/customization and tricks, each role can easily access data that is expected to their roles. Easy!

What do you think?



Sunday, January 6, 2013

System.ArgumentException: Exception of type 'System.ArgumentException' was thrown. Parameter name: encodedValue

3 comments

I was configuring one of our clients farm which required FBA on different web applications (around 5) and he wanted each web application should have separate user store. That was too tricky since you just need to set up Application property of the membership provider and you are done.

After completion of these settings, all of my applications were having a common exception either in log out or login to the web application. Here was the exception.

System.ArgumentException: Exception of type 'System.ArgumentException' was thrown.  Parameter name: encodedValue    at Microsoft.SharePoint.Administration.Claims.SPClaimEncodingManager.DecodeClaimFromFormsSuffix(String encodedValue)     at Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetProviderUserKey(IClaimsIdentity claimsIdentity, String encodedIdentityClaimSuffix)     at Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetProviderUserKey(String encodedIdentityClaimSuffix)     at Microsoft.SharePoint.Utilities.SPUtility.GetFullUserKeyFromLoginName(String loginName)     at Microsoft.SharePoint.ApplicationRuntime.SPHeaderManager.AddIsapiHeaders(HttpContext context, String encodedUrl, NameValueCollection headers)     at Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PreRequestExecuteAppHandler(Object oSender, EventArgs ea)     at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()     at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

After checking all my steps right through starting. After getting all the other exeptions cleared the above exception was the only exception that I was getting. That was resolved using "Exception of type 'System.ArgumentException' was thrown" got error when i have signout from webapplication in sharepoint 2010?.

I hope this will help to you if you are getting same error due to a silly custom property of a custom web part for registration!

Monday, December 31, 2012

SharePoint 2010 foundation on windows 7

0 comments

If you are planning to install SharePoint 2010 foundation in your windows 7 machine, there are very good references out there in many blogs. But after I installed it I was not able to create new web applications.

I noticed, I was an administrator account with different name than administrator. I found here that we can enable in built administrator account.

I enabled administrator account and added it to managed accounts and farm administrators group.

After trying so many things from forums, finally I got everything working in SharePoint Foundation in my machine!

Monday, July 23, 2012

DotNetNuke: As an E-commerce help portal

1 comments
DotNetNuke is a powerful content management system. I can say this because I am following DotNetNuke and improving myself since early 4.x release of it. I decided to spend some time on highlighting some of the key projects that I have done during last 6 years, that can describe capabilities of DotNetNuke. Here is the first one.

GolfOnline.co.uk - is an online e-commerce portal. An e-commerce portal feel completed once integrated with an easy to use, and great performing CMS. As a solution Help.GolfOnline.co.uk is built as an answer. This site is built using DotNetNuke and is working so well.

Here is the highlight of key features:
  1. Authoring: Contents can be hidden to users unless they are approved and intended to show to end users. 
  2. Branding: Flexible enough to re-use some of the ASCX controls from e-commerce web application for branding purpose. Integration went a little tricky but no problems at all. Most of the css/js/images are used from 
  3. Performance: Performs like accessing html pages
  4. Customization: Build/customize in whatever way you can. Good examples is sub tabs module to - showing child pages are tabs. (jQuery UI, jQuery, DotNetNuke API)
  5. CDN: Capability to integrate CDN so that css, js and some static html can be steamed through CDN.
  6. SEO: Free of cost implementation of custom urls (Thanks to iFinity Friendly Url Provider), along with all the goodness of SEO. 
  7. Search: This feature isn't used on site but it can be. In built search engine to find content.
  8. Quick: Go live in no time.
Please get some time and visit help.golfonline.co.uk and feel the strength of DotNetNuke. Notice the yslow rating and responsiveness of the site. 
I believe DotNetNuke can be smartly utilize to provide such kind of solutions in no-time. Isn't it?