SmarterTrack is a unique and powerful ticketing and support system produced by SmarterTools which is even being published in a free full featured version too.
The point of this post it to show how to integrate it with DotNetNuke to use same user accounts for sign in and even have a single sign in feature.
This post consists of links to already written articles and a free open source package (written by me
) that you can download and install it on your current DNN website.
The package consists of:
- ~/DesktopModules/SmarterTrackLoginProvider/Login.asmx : The Webservice which is responsible for answering the SmarterTrack authentication request.
- ~/App-Code/SmarterTrackLoginProvider/Login.vb : The source code for the mentioned Webservice.
- ~/bin/SmarterTrack.Connector.dll and ~/bin/SmarterTrack.Connector.pdb : Shipped originally by SmarterTools and are referenced in the Webservice.
The general perspective is that SmarterTrack is having an External Login Provider feature in which you can customize it to have a single sign-in ability with your current accounting system. This feature is not being presented in Professional version of SmarterTrack.
Assumptions:
- You have an already installed and working DNN website
- You have an already installed and working SmarterTrack web application
- Both your website and SmarterTrack are working under one domain name. Sub domains and virtual directories can differ but the main domain should be same. (e.g. www.yourdomain.com and support.yourdomain.com or www.yourdomain.com/support) – (only for single sign-in feature)
- You have access to modify your DNN and SmarterTrack web.config file.
- You have the SmarterTrack administration access.
- You have enough privileges to extract the package into your portal root folder.
Part 1: Steps you need to take to let SmarterTrack use DotNetNuke accounts and authentication:
- First of all you need to download this zip file and extract it into your DNN portal’s root folder.
- Edit file ~/App-Code/Login.vb with a text editor and locate WebServicePassword and change it’s value. The default value is 110. This password is used to authenticate the communication to the Webservice. Now save the file.
- Log in to SmarterTrack as a system administrator.
- Click Management Interface.
- Click Settings on the main toolbar.
- Expand the System Settings folder.
- Click External Providers in the left tree view. The external provider settings will load in the content pane.
- Select Login Provider tab.
- Change the provider type to External Web Service.
- In the Web Service URL field, type http://(path_to_your_portal_root)/DesktopModules/SmarterTrackLoginProvider/Login.asmx .
- In the Web Service Password field, type the password you have entered in the Login.vb file in step 2.
- Click Save.
That’s it.
Part 2: Now if you would like to have a single sing-in between the DotNetNuke portal and your SmarterTrack web application you need to follow these steps:
- Edit DotNetNuke web.config file with a text editor and locate the line which begins with <forms and add enableCrossAppRedirects=”true” domain=”yourdomain.com” to the line and remove cookieless=”UseCookies” . It should look something like :
- In the same file locate the line which begins with <machineKey . Copy the whole tag and have it pasted inside the SmarterTrack web.config file after <system.web> tag and before </system.web>. However, if you already have this machine key enabled in your SmarterTrack application then you need to make sure that the keys and the algorithms match the ones in DotNetNuke web.config file. But this line is disabled (commented) in SmarterTrack by default.
- In SmarterTrack web.config file, locate the line which begins with <forms and add name=”.DOTNETNUKE” enableCrossAppRedirects=”true” domain=”yourdomain.com“ to it. It should look like:
- Now save both web.config files.
- Close your browser (if any open)
- Restart your IIS. (If you don’t have access to your IIS renaming the web.config files and then renaming them back should restart IIS)
<forms name=".DOTNETNUKE" protection="All" enableCrossAppRedirects="true" domain="yourdomain.com"/>
<forms name=".DOTNETNUKE" enableCrossAppRedirects="true" domain="yourdomain.com" loginUrl="~/Main/Default.aspx" defaultUrl="~/Main/Default.aspx" protection="All" timeout="525600"/>
Now you have successfully integrated DotNetNuke membership with SmarterTrack Login.
I have developed and tested the code under : DNN494, .Net 2, SmarterTrack 4.7 . But I believe it should work on DNN 5.x too. However, I can update you once I have tested it or you can shout it in case you have more free time.
Hope you enjoy this post.
Reference Articles:
SmarterTools – How To – Configure External Providers
SmarterTools – How To – Configure single sign-on between SmarterTrack and another site