We had the hard drive that has the user's home drive fail a while back (just before we moved to the new house). Thankfully, I was able to run CHKDSK on it and saved the files. To my dismay, I found that this drive is a Maxtor. Well, I'm sticking to only Seagate hard drives from now on. I really don't care how much cheaper Maxtor is, Seagate drives have only failed on me once. I had a stack of 6 Maxtor drives that had failed in the last 3 years. As you can imagine, I'm pissed off.
I went an ordered a 500 gig SATA Seagate drive, and it was delivered to me on Wednesday. To my horror, I didn't realize that the server didn't have any SATA jacks on the motherboard. AAAARRRGGGGHHH! So, now I need to buy a SATA card. Thankfully, there are a few in town. I'll probably pick one up at OfficeMax on my way home from work.
This hard drive is the one that contains everybody's Outlook PST file, so I can't get attachments until the new one is installed and the files transferred over from the old one.
Well, I had a hair pulling session trying to recover the passwords on this 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:
- connectionStrings
- system.web
You only need the membership and machinekeys 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.
I got really tired of the DotNetNuke core Blog module, so I ripped it out and replaced it with this. It already bombed today, by not letting me edit and/or create new blog entries.
I haven't had time to customize the look of the module, but I will in time.