سلام
من موقع استفاده از گوگل کپچا خطای زیر را دارم؟
Message: Unknown web method VerifyCaptcha. Parameter name: methodName source: System.Web.Extensions method:
متن ارور داره میگه مشکل کجاست Parameter name
خودم هرچندبار که امتحان میکنم خطایی روی کپچا نمیگیره، ولی نمیدونم چرا در لاگ خطا رخ میده.
متن خطا را واضح تر میزارم
page location: /mypagse.aspx/VerifyCaptcha Message: Unknown web method VerifyCaptcha. Parameter name: methodName source: System.Web.Extensions TargetSite: System.Web.Script.Services.WebServiceMethodData GetMethodData(System.String) StackTrace: at System.Web.Script.Services.WebServiceData.GetMethodData(String methodName) at System.Web.Handlers.ScriptModule.OnPostAcquireRequestState(Object sender, EventArgs eventArgs) at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
چطور میتونم کنترل کنم خطا از کجاست؟
کاری هم که انجام دادم به اینصورت هست: من کپچا را طبق مستندات گوگل بصورت زیر گذاشتم:
<script src='https://www.google.com/recaptcha/api.js?hl=fa' async="async" defer="defer" > </script>
من با این کد اعتبارسنجی میکنم:
Dim newrc As New ReCaptchaClass If (newrc.ValidateCapcha(Request("g-recaptcha-response")) = False) Then msgbox("eshtebah ast") end if
و کد درون کلاس هم به این صورت است
Public Class ReCaptchaClass Public Function ValidateCapcha(ByVal recaptcha As String) As Boolean Dim Response As String = recaptcha 'Getting Response String Appned to Post Method Dim Valid As Boolean = False 'Request to Google Server Dim newta As New tabe Dim rechSecrkey As String = newta.getReCaptcha_Secret Dim req As HttpWebRequest = CType(WebRequest.Create(" https://www.google.com/recaptcha/api/siteverify?secret=" & rechSecrkey & "&response=" & Response), HttpWebRequest) Try 'Google recaptcha Responce Using wResponse As WebResponse = req.GetResponse() Using readStream As New StreamReader(wResponse.GetResponseStream()) Dim jsonResponse As String = readStream.ReadToEnd() Dim js As New System.Web.Script.Serialization.JavaScriptSerializer() Dim data As MyObject = js.Deserialize(Of MyObject)(jsonResponse) ' Deserialize Json Valid = Convert.ToBoolean(data.success) End Using End Using Return Valid Catch ex As WebException Throw ex End Try End Function End Class
این آموزشی که در این سایت گذاشتن رو یک برنامه نویس هندی تو یک سایت خارجی گذاشته و اصلا امنیت داره.
https://barnamenevisan.org/Articles/Article5596.html
اعتبارسنجی در سمت کلاینت به راحتی هک میشه.
منهم آموزش زیر رو تو یه سایت خارجی دیدم
https://barnamenevisan.org/Articles/Article6750.html
و از روی همین انجام دادم که همین خطا بعضی وقت ها میاد.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)