我在DNN网站上使用反馈6.0.0,该网站使用RadCaptcha和音频代码。 当我在localhost中使用它时,它工作正常,我可以用默认音频文件替换另一个.wav文件。但是当我在服务器上安装此模块时,模块从WebResource读取音频文件而不是从我设置的地址读取音频文件我无法替换此音频文件。
即使我从RadCaptcha文件夹中删除此音频文件,该模块也会从webResource中读取音频文件。
我使用此代码来使用RadCaptcha:
<dnn:dnnCaptcha ID="ctlCaptcha" runat="server" EnableRefreshImage="True" Width="300px" CaptchaImage-AudioFilesPath="~/DesktopModules/Feedback/App_Data/RadCaptcha" />
我的问题是如何在服务器中而不是在localhost
中替换RadCapcha中的自定义音频文件答案 0 :(得分:1)
Atabrizi,您是否已在web.config文件中正确配置了处理程序?
<httphandlers>
<add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" />
</httphandlers>
<handlers>
<add name="Telerik_Web_UI_WebResource_axd" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" />
</handlers>
另外,我在他们的文档中找到了以下信息:
为了使Captcha能够在网络上输出音频文件 应用程序必须在完全信任环境中运行。基本上是 应用程序应作为具有调用权限的用户帐户运行 服务器上的SpeechSynthesizer.Speak(textToSpeak)方法。平时 用户帐户没有所需的权限和 管理员必须授予他们。例如,在IIS 6+中的应用程序 池作为ApplicationPoolIdentity内置帐户运行(这是通过 默认),没有足够的权限来调用 SpeechSynthesizer.Speak(textToSpeak)。能够生成代码 应用程序池应具有LocalSystem的权限 内置帐户。
然而,还有一个替代方案:
如果Web应用程序没有足够的权限 “说出”文本代码或它使用.NET2.x(早于3.0版本的 .NET Framework),音频文件将通过串联生成 “.wav”文件,对应于文本中的特定字符 码。默认情况下,RadCaptcha将查找中的文件 App_Data \ RadCaptcha目录,因此您需要提供文件夹和 文件。您可以复制位于的App_Data \ RadCaptcha目录 用于ASP.NET AJAX安装的RadControls的App_Data文件夹。 请注意,为了生成音频代码 正确地说,每个可能的角色都必须有一个“.wav”文件 可以出现在图像上,文件必须命名为 角色本身 - “[Char]”。wav(即A.wav,B.wav,C.wav,1.wav, 2.wav等。)。