As a cost cutting measure, I will be moving this website from PowerDNN to my rack-mounted servers. I'm being forced to cut down on all unnecessary costs. Currently I pay $50/month to host this site and the WheelMUD site. I can't afford that anymore.
I wanted to give everybody a heads up that the site will be down intermittently in the next 5 days. The biggest hurdle will be the DNS servers. The DNS changes can take up to 72 hours for some people.
Just remember, this site is not going away. Don't Panic! GANGNAM STYLE!
Your invisible and friendly system administrator.
A while back, I created a little utility to edit ASP.NET membership services database. The instructions only talked about DotNetNuke. I've now added instructions on how to use it on regular ASP.NET membership databases.
There previous blog post is DotNetNuke user manager - Winform App. The new app is called MembershipUserManager. I've included, as usual, both the source and binaries. The source is now a Visual Studio 2010 solution. It actually uses .NET 2.0, so older versions of Visual Studio and SharpDevelop can use the source.
The ReadMe.txt file, in the zip files, has instructions on how to setup regular ASP.NET membership and DotNetNuke.
I had somebody ask me for specs on Twitter about the modules that I would like to see. I call this list the Micro Independent Software Vendor (mISV) pack.
I don't have the time to create something like this, but I do know that there is serious interest in having an integrated solution like I outline below.
Customer Licensing Center
- Gives the ability for customers to see what licenses they currently own
- Allows admins to import sales/licensing information from external license tracker systems.
- Allows admins to match imported customers to existing accounts, or create new ones.
License Dispenser for DNN Portal
- Allows admins to setup a license dispensing system, either custom or 3rd party liscening schemes.
- Allows admins to do online activation of their software.
- Integrates with gateways like FastSpring, Plimus, eBay, and Google Checkout.
- Integrates with customer licensing center.
Opt-In Email Marketing
- Allows admins to send reminders to customers for any expiring license subscriptions.
I think this can be already be done with DataSprings Opt In Email module.
- Allows admins to integrate with their DotNetNuke portal
- Allows integration with their current version control system
There are many good stand-alone web products in this category, but I find it infuriating having to send customers to a separate web app. Heck, even a module that has the basic functions in DNN would be welcome. I created a prototype that would read tickets from JIRA. Unfortunately, I don't have the code anymore.
- Allows admins to integrate with their DotNetNuke portal
- Allows integration with the ticket/case system, and the licensing center.
Again, there are many good web and desktop solutions, but I want to see this in my DotNetNuke portal. I REALLY hate sending customers to a separate web app for this.
Robust KB App
I have found that I like InstantKB.NET a whole lot. I would love to have this integrated with DotNetNuke as well. My dream scenario would be integrate with a forum, where there would be a button for "Create KB Article" which would copy the contents of the thread and start a new article.
The integration that I had with my ecommerce DNN module (ActivePurchase) broke when I moved the site to PowerDNN. I have been fighting with this for a couple weeks now.
Here's what happened:
The part that sends the serial number did not work anymore, because the SMTP server was not on the same network. Changing the settings did not work at first. I went googling for sending emails from DNN. I got some good hits for sending email from inside DNN modules.
The API for this is fairly simple (relatively). You first make a reference to DotNetNuke.Services.Mail. Then you make a call to the Mail.SendMail() method, with the appropriate parameters. There are 5 overloads. The call from a module would look like this:
DotNetNuke.Services.Mail.Mail.SendMail(FromAddress, SendTo, "", Subject, Body, "", "", "", "", "", "")
Well, that didn't work. So now I was scratching my head.
I am using a special type of integration called a custom step, which is just an assembly in the bin directory for the DotNetNuke install. I had to go and dig into the event log that DNN keeps. There were several exceptions there. The message was that the SMTP connection needed to be authenticated. WTF??
Custom DNN modules use the SMTP settings that the administrator has setup. However, the custom step does not get treated as a module. So I had to do this:
DotNetNuke.Services.Mail.Mail.SendMail(FromAddress, SendTo, "", Subject, Body, "", "", "", "", UserName, Password)
Once I did that, the custom step started sending emails like before. YES!
Now that this is fixed, I can get my undivided attention back to PainlessSVN and SVN Backup Widget stuff.
September 7, 2012
|This utility has been updated to support both DotNetNuke and regular applications that use ASP.NET membership services. Please get the new download over here -->
I had a LOT of people ask me about how to recover/reset passwords in a damaged DotNetNuke (DNN) installation. I wrote a quick Winform app to do just this. It's fairly crude, but it get things done. I cleaned up the code a bit and wrote intructions in the read me file.
Here is the opening screen:
Here is the screen after you press the Get Users button
This is what it looks like when a password is ok. The password will show up in green.
This is what it looks like when the password is damaged and can't be recovered through the ASP.NET Membership APIs. The Reset Password will reset the password in the DotNetNuke database, then the UI will display the randomly generated password you can email to your user.
The zip file contains the source. It is a Visual Studio 2008 C# project.
Please read the "Read Me.txt" file, inside the zip file, for how to setup the config file. This program will not work if the config file is not setup correctly! I didn't want to spend time creating a wizard to create the configuration file.
Internet Explorer users - Please right-click on the links below and select "Save Target As"
Well, I had a hair pulling session trying to recover the passwords on my hobby site. Both my admin and host paswords got hosed, so I couldn't just login and fix them.
I first went Googling to find a winform app to help with this problem. Well, all the solutions were just modules to install on your DotNetNuke installation. Since I can't even login as host, this approach is just totally useless. Thankfully, DNN uses the ASP.NET 2.0 Membership Providers.
So, I started with Membership.Provider.RetrievePassword(). Oops, "Bad Data". Crap! I tried other account passwords with the same result. Double-Crap! I modified my little winform app, to now reset passwords. This time I used Membership.Provider.ResetPassword(). Got a new password for host, and I was able to login now. YES! I'm using .NET 2.0 for this winform app.
So if you want to get this working, here is what you need to do:
Make sure that you include the following sections from your DNN's website web.config file:
You only need the membership and machineKey sections inside system.web.
Import System.Configuration and System.Web into your project. All of the needed API calls will be under Membership.Provider namespace. You'll find a lot of samples on how to use on Google.
Anyways, I wanted to put it somewhere, so that I can find it later, WHEN I would need to do this again.