2013-02-20 2 views
3

WebMatrix를 사용하고 있다고합니다. 내 ASP.NET 웹 사이트에 reCAPTCHA 플러그인을 추가하려고합니다. ASP.NET 플러그인에 대한 quickstart 설명서를 살펴 보았습니다. 여기에 자신의 예제의 일부는 다음과 같습니다reCAPTCHA ASP.NET 플러그인을 면도기 (CSHTML) 파일에 넣을 수 있습니까?

<%@ Page Language="VB" %> 
<%@ Register TagPrefix="recaptcha" Namespace="Recaptcha" Assembly="Recaptcha" %> 
<script runat="server"> 
    Sub btnSubmit_Click(ByVal sender As Object, ByVal e As EventArgs) 
     If Page.IsValid Then 
      lblResult.Text = "You Got It!" 
      lblResult.ForeColor = Drawing.Color.Green 
     Else 
      lblResult.Text = "Incorrect" 
      lblResult.ForeColor = Drawing.Color.Red 
     End If 
    End Sub 
</script> 
<html> 
    <body> 
    <form runat="server"> 
     <asp:Label Visible=false ID="lblResult" runat="server" /> 
     <recaptcha:RecaptchaControl 
      ID="recaptcha" 
      runat="server" 
      Theme="red" 
      PublicKey="your_public_key" 
      PrivateKey="your_private_key" 
     /> 

     <!-- ... --> 
    </form> 
    </body> 
</html> 

나는 내가 "<% @ 페이지 언어 ="VB "%>"필요하지 않을 것을 알고,하지만 난 면도기 여전히 비교적 새로운 해요, 그래서 어떻게 것 reCAPTCHA 어셈블리에 대한 참조를 추가하고 내 페이지에 플러그인을 표시합니까? 내 CSHTML 문서에서 reCAPTCHA를 어셈블리에서 <asp:???> 태그와 태그를 넣을 수 있습니다, 또한

<%@ Register TagPrefix="recaptcha" Namespace="Recaptcha" Assembly="Recaptcha" %> 

: 내가 어셈블리 참조 동안이 줄을 사용할 수 있음을 의심 해요? 이것은 WebMatrix 웹 사이트에 유효 할 것이다 :

<recaptcha:RecaptchaControl 
    ID="recaptcha" 
    runat="server" 
    Theme="red" 
    PublicKey="your_public_key" 
    PrivateKey="your_private_key" 
    /> 

기본적으로 내가 하나가 면도기의 C# 파일에 reCAPTCHA를 플러그인을 추가하는 방법에 대한 갈 것이라고 어떻게 부탁 해요.

+0

[플러그인없이 reCAPTCHA 표시하기] (https://developers.google.com/recaptcha/docs/display)를 살펴볼 가치가 있습니다. – MikeSmithDev

+0

또는 ...MVC 용 플러그인 (실제 웹을 쉽게 찾을 수있을 것 같습니다) –

+1

MVC의 경우 http://mvcrecaptcha.codeplex.com/을 사용할 수 있습니다.하지만 Razor로 웹 페이지를 사용하고 있습니까? –

답변

4

Microsoft.Web.Helpers 라이브러리에 컨트롤이 포함되어 있습니다. 기본 사용법은 (면도칼) 서버 측에

@using (Html.BeginForm("Captcha", "Home", FormMethod.Post)) 
{ 
    @Microsoft.Web.Helpers.ReCaptcha.GetHtml(publicKey: "...")  
    <input type="submit" value="submit"/> 
} 

@Microsoft.Web.Helpers.ReCaptcha.GetHtml(publicKey: "...")

클라이언트입니다

보기 폴더 \에있는 Web.config

<appSettings> 
    <add key="webpages:Version" value="1.0.0.0"/> 
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
    <add key="ReCaptchaPrivateKey" value="Your private key here" /> 
    <add key="ReCaptchaPublicKey" value="Your public key here" /> 
</appSettings> 

에서

public ActionResult Captcha() 
{ 
    var valid = Microsoft.Web.Helpers.ReCaptcha.Validate(privateKey: "..."); 
    if (valid) 
    { 
     return RedirectToAction("Contact"); 
    } 
    else 
    { 
     ModelState.AddModelError("Captcha", "Bad input in captcha"); 
     return View("Index"); 
    }    
} 
+0

이 방법을 사용하여 reCAPTCHA의 유효성을 검사하려면 어떻게해야합니까? –

0

의 Web.config

<namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="Recaptcha"/> 
    </namespaces> 
당신이
[HttpPost] 
    [RecaptchaControlMvc.CaptchaValidator] 
    public ActionResult Index(Home home, bool captchaValid, string captchaErrorMessage) 
    { 
     if (ModelState.IsValid) 
     { 
      if (captchaValid) 
      { 
       //return RedirectToAction("AnswerSecurityQuestion", new { username = model.Username }); 
       return View(home); 
      } 
      ModelState.AddModelError("", captchaErrorMessage); 
      home.recap_errorRaise = captchaErrorMessage; 
     } 
     return View(home); 
    } 
+0

그는 MVC 또는 Webform을 사용하지 않고 있지만 '웹 페이지'라고 말했습니다. 대답은 MVC입니다. –

2

이 작품의 지금까지 아무도 컨트롤러

에서

<div class="editor-label"> 
     Are you a human? 
    </div> 
    <div class="editor-field"> 
     @Html.DisplayFor(model => model.recap_errorRaise) 
     @Html.Raw(Html.GenerateCaptcha("captcha", "red")) 
     @Html.ValidationMessage("captcha") 
    </div> 

을 표시 할 위치 cshtml

에서

이를 넣어 상단

@using Recaptcha; 

에 넣고. OP는 WebMatrix와 Razer를 사용하고 위와 아래의 예제는 MVC와 일반 ASP.NET 용입니다.

WebMatrix IDE에는 reCAPTCHA 용 NuGet 패키지가 포함되어 있지만 사용법은 나와 있지 않습니다.

편집 : 여기가 간단히 말해서 WebMatrix

http://www.asp.net/web-pages/tutorials/security/using-a-catpcha-to-prevent-automated-programs-%28bots%29-from-using-your-aspnet-web-site

을 reCAPTCHA를 사용에 대한 지침, 당신은, NuGet을 열고 MS Webhelper 라이브러리와 reCAPTCHA를 설치해야합니다. 그런 다음 _AppStart.cshtml을 권고대로 추가/편집하고 페이지의 예제 코드를 확인하십시오.