Recaptcha不会使用Recaptcha.dll在DNN模块中动态加载

时间:2015-01-23 11:53:59

标签: c# asp.net dotnetnuke recaptcha

当我尝试分配Public& amp时,我在加载Google Recaptcha控件时遇到问题私有密钥动态地在代码后面。它在简单的ASP.Net网站上运行良好,但是当我将它集成到DNN模块中时它不起作用。

错误消息: reCAPTCHA需要配置公开&私钥。

堆栈跟踪:

  

DotNetNuke.Services.Exceptions.PageLoadException:reCAPTCHA需要使用public& amp;私钥。 ---> System.ApplicationException:reCAPTCHA需要配置public&私钥。在System.Web.UI.Control.InitRecursive(Control.Web.UI.UI.Control.InitRecursive)的System.Web.UI.Control.InitRecursive(Control namingContainer)的System.Web.UI.Control.InitRecursive(Control namingContainer)中的Recaptcha.RecaptchaControl.OnInit(EventArgs e)在DotNetNuke的System.Web.UI.ControlCollection.Add(Control child)的System.Web.UI.Control.AddedControl(Control control,Int32 index)的System.Web.UI.Control.InitRecursive(Control namingContainer)中的namingContainer。位于系统的System.Web.UI.Control.PreRenderRecursiveInternal()的System.Web.UI.Control.EnsureChildControls()处的DotNetNuke.UI.Modules.ModuleHost.CreateChildControls()处的UI.Modules.ModuleHost.InjectModuleContent(控件内容)。 System.Web上的System.Web.UI.Control.PreRenderRecursiveInternal()处的System.Web.UI.Control.PreRenderRecursiveInternal()处的System.Web.UI.Control.PreRenderRecursiveInternal()处的Web.UI.Control.PreRenderRecursiveInternal()。系统中的UI.Control.PreRenderRecursiveInternal()系统中的System.Web.UI.Control.PreRenderRecursiveInternal()处的System.Web.UI.Control.PreRenderRecursiveInternal()处的System.Web.UI.Control.PreRenderRecursiveInternal()处的tem.Web.UI.Control.PreRenderRecursiveInternal()。 Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)   ---内部异常堆栈跟踪结束---

标记:

<googleCaptcha:RecaptchaControl ID="ctlRecaptcha" runat="server" />

代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
    ctlRecaptcha.PublicKey = "xyz";
    ctlRecaptcha.PrivateKey = "abc";
}

1 个答案:

答案 0 :(得分:1)

我实际上有一个关于创建custom DNN registration with the Google Recaptcha的DNNHero.com教程。它包括一个视频和代码项目。

查看我的代码,我在ascx中包含了publickey和privatekey的属性,但是有虚拟值:

<googleCaptcha:RecaptchaControl ID="ctlRecaptcha" runat="server" PublicKey="your_public_key" PrivateKey="your_private_key"/>

我设置的属性值就像你在Page_Load事件中设置的那样。这对我有用。如果它仍然抛出错误,请尝试并发表评论。