I've got this same problem, I'm trying to implement reCAPTCHA on the registration page to replace the regular DNN CAPTCHA that clearly isn't working.
I downloaded the recaptcha.dll and added it to my /Bin directory (interestingly enough there was already a recaptcha.dll in there, but I used the newer one I just downloaded).
To my /DesktopModules/Admin/Security/Register.ascx file I added:
<%@ Register TagPrefix="recaptcha" Namespace="Recaptcha" Assembly="Recaptcha" %>
And also:
<div>
<recaptcha:RecaptchaControl ID="recaptcha" runat="server" PublicKey="[Public Key]" PrivateKey="[Private Key]" />
</div>
(obviously changing [Public Key] and [Private Key] to the correct values)
That makes the reCAPTCH appear correctly.
To my /DesktopModules/Admin/Security/Register.ascx.cs file I change this function:
private void registerButton_Click(object sender, EventArgs e)
{
if ((UseCaptcha && ctlCaptcha.IsValid) || !UseCaptcha)
{
if (IsValid)
{
CreateUser();
}
else
{
AddLocalizedModuleMessage(UserController.GetUserCreateStatus(CreateStatus), ModuleMessage.ModuleMessageType.RedError, true);
userForm.DataBind();
}
}
}
To be this:
private void registerButton_Click(object sender, EventArgs e)
{
if (Page.IsValid) {
if ((UseCaptcha && ctlCaptcha.IsValid) || !UseCaptcha)
{
if (IsValid)
{
CreateUser();
}
else
{
AddLocalizedModuleMessage(UserController.GetUserCreateStatus(CreateStatus), ModuleMessage.ModuleMessageType.RedError, true);
userForm.DataBind();
}
}
} else{
AddLocalizedModuleMessage("CAPTCHA incorrect, try again! - refresh the page to try again", ModuleMessage.ModuleMessageType.RedError, true);
userForm.DataBind();
}
}
That correct checks the new reCAPTCHA, if it is correct and all the other fields are correct then the user is created. If the CAPTCHA is wrong or any other field is invalid then it reloads the page with an error message, this is where my last problem is. All the registration fields are reloaded, but the reCAPTCHA doesn't load.
So maybe that's helpful to some people, and maybe some people can be helpful in solving that last problem. Has something to do with javascript not working on a postback.