-
-
On Saturday, the site went down during a server upgrade when I accidentally gave the last domain controller on the network the wrong IP address. Around 3am this morning, I finally got everything up and working. I still have 1 physical server and several virtual servers to upgrade, so the site may go down periodically (up to an hour) while I work on these servers.
Thank you for your patience...
-
-
I've been wanting to enable anonymous comments for quite some time, but I hadn't due to the enormous amount of BLOG spam that is being generated on the Internet. I had considered using a CAPTCHA scheme with images, but it usually turns out to be more of a nuisance to users and requires quite a bit of coding for each and every page that uses it. I was going to bite the bullet and use images when Dave Burke directed me to a post of his, Spam and BlogEngine.NET - Nadda, Nope, Nothin, which has a link to another post about Invisible CAPTCHA.
After doing a little research and giving up on the image approach (which requires you to turn on the IIS session state system), I started work on my favorite BLOG theme, Paperclip. After enabling the view state, adding some server side code, and adding a single custom validator to the page, I had it working. The only down side is that users who do not have javascript enabled in their browser will not be able to add comments. For me, this isn't an issue as I don't support users that don't have javascript enabled.
All this being said, here is what you need to do to the post.aspx page of each and every BLOG theme to get this working:
-
Make sure that EnableViewState="True" is in the @Page directive at the top of the page.
-
Replace the following server side script:
void Page_Load(object sender, EventArgs e)
{
if (CurrentWeblogPost != null)
SetTitle(CurrentWeblogPost.Subject, false);
}
with:
void Page_Load(object sender, EventArgs e)
{
if (CurrentWeblogPost != null)
SetTitle(CurrentWeblogPost.Subject, false);
InititializeCaptcha();
}
/// <summary>
/// Initializes the captcha and registers the JavaScript
/// </summary>
private void InititializeCaptcha()
{
if (ViewState["CaptchaName"] == null || ViewState["CaptchaValue"] == null)
{
ViewState["CaptchaName"] = Guid.NewGuid().ToString();
ViewState["CaptchaValue"] = Guid.NewGuid().ToString();
}
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.AppendLine("function SetCaptcha(){");
sb.AppendLine("var form = document.getElementById('" + Page.Form.ClientID + "');");
sb.AppendLine("var el = document.createElement('input');");
sb.AppendLine("el.type = 'hidden';");
sb.AppendLine("el.name = '" + ViewState["CaptchaName"].ToString() + "';");
sb.AppendLine("el.value = '" + ViewState["CaptchaValue"].ToString() + "';");
sb.AppendLine("form.appendChild(el);}");
Page.ClientScript.RegisterClientScriptBlock(GetType(), "captchascript", sb.ToString(), true);
Page.ClientScript.RegisterOnSubmitStatement(GetType(), "captchayo", "SetCaptcha()");
}
/// <summary>
/// Gets whether or not the user is human
///</summary>
private bool IsCaptchaValid
{
get
{
if (ViewState["CaptchaName"] != null && ViewState["CaptchaValue"] != null)
{
return Request.Form[ViewState["CaptchaName"].ToString()] == ViewState["CaptchaValue"].ToString();
}
return false;
}
}
protected void valCaptcha_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid &= IsCaptchaValid;
}
-
Just before the
<CSBlog:WeblogPostCommentForm... line toward the end of the file, insert:
<asp:CustomValidator runat="server" Display="Dynamic" EnableClientScript="False" ValidateEmptyText="True" ValidationGroup="CreateCommentForm" ID="valCaptcha" onservervalidate="valCaptcha_ServerValidate"><p><strong>Automatted entry detected, comment not saved.</strong></p></asp:CustomValidator>
That's it, you're done. If you run into any issues, please post them here.
UPDATE: I just learned about reCAPTCHA, which has an ASP.NET interface. I might look more closely into using it at a later date.
-
-
AT&T came out and corrected some issues that were not correctly addressed when the lines were first installed. I need to monitor the lines very closely for the next couple of weeks, but it looks like this may be why the connections have been very unreliable.
UPDATE 07/15/2008: It turns out that the Netopia routers were overheating which caused them to constantly recycle as a recycle causes them to heat up even more. Raising them 1 inch from the surface that they are sitting on has alleviated the issue.
-
-
We are currently experiencing connection issues that AT&T is working on. Our connection to the Internet has been down about 95% of the time for the past 24 hours, but should be fully functional late Thursday, June 26, 2008.
Take it easy,
Bill
-
-
I converted the Community Server solution to Visual Studio 2008 a couple weeks, which went without any hitches, but I waited until this weekend to update the application to CS 2007.1 as I knew that that would not be as easy. This was more than a patch and is really a stepping stone for the next major release of Community Server, CS 2008.
Several administration features are being removed from Community Server with the release of CS 2008, many of which I am using. In the end this this will allow Telligent to take Community Server to the next level and will make administration of the site so much easier, but it means that I and others must upgrade to CS 2007.1 first. If we don't, the upgrade to CS 2008 will be so much more painful than it needs to be.
CS 2007.1 has some problems of its own and one major piece of functionality was mistakenly removed from the administration UI. The UI for the Auto Delete functionality (permanent deletion of posts) was removed for some unknown reason. One person alluded to the fact that it was no longer working, but I found that to not be true. While upgrading to CS 2007.1 I very carefully made sure that I didn't remove any of the Auto Delete UI pieces and it is functioning very well on my sites.
If you run into any issues with the site, let me know...
-
-
Due to the fact that another project is using the CMS.NET name and that the domain is also taken, it was decided that a different name for the project should be used. Several different names and the availability of domains for those names were considered, before stumbling upon the name CMSLive.NET. When it was learned that the domain name hadn't been registered, I quickly registered the name and changed the name of the project as this name exactly describes the application.
Also, due to the early release of Visual Studio .NET 2008, the application will target the 3.5 .NET Framework. A public view of the application will be available sometime during the 1st quarter of 2008. This will only be a demonstration of what the application will be able to do as the major portion of development will be the interfaces and tools for content editors and administrators.
-
-
Telligent released SP2 on June 12th and I just finished installing the update. If you notice anything that was working before and currently isn't, let me know.
-
-
I apparently forgot to allow users to post in the project forums and no one let me know about it. Anywho, that has been corrected and I hope we can start talking about the different projects.
Take it easy,
Bill
-
-
I have created a few new forums for open discussion on different topics. If there are some other forums that you would like to see, leave a comment or send me a private message.
Enjoy...
-
-
The servers and myself moved to a new location in sunny San Diego, with DSL service from AT&T. This service is 3-4 times faster than the COVAD service I had previously, and for the same price. I was also able to get the firewall fully functional, which has ended the attempts to break in and/or take down the site.
I have been extremely busy with my current client, so I have only been able to work on CMS.NET a couple hours here and there. I'm still working on the core design and code, but am very happy in how it is going. The dynamic CSS system is going to be great for skinning the site. I'll post more as pieces become more concrete.
-
-
That's right. This site is dedicated to the open source development of C/C++/C# applications primarily for, but not limited to, the .NET platform.