Bonjour J'essaie d'affecter la valeur booléenne d'un objet (donnée) obtenue à partir de la validation recaptcha. La valeur de l'objet est TRUE mais l'assigner à la variable ne fonctionne pas et la fin l'envoie comme False.Comment affecter une valeur booléenne d'un objet à une variable dans Visual Basic
Protected Sub Validate_Captcha(ByRef Validation As Boolean)
Dim hdk As String = "ITOOKOUTTHESTRING"
'Dim res As Recaptcha = Recaptcha.RecaptchaResponse()
Dim Response As String = HttpContext.Current.Request.Form("g-recaptcha-response")
Dim request As WebRequest = WebRequest.Create("https://www.google.com/recaptcha/api/siteverify?secret=" & hdk & "&response=" & Response)
Using wResponse As WebResponse = request.GetResponse()
Using readStream As StreamReader = New StreamReader(wResponse.GetResponseStream())
Dim jsonResponse As String = readStream.ReadToEnd()
Dim js As JavaScriptSerializer = New JavaScriptSerializer()
Dim data As Object = js.Deserialize(Of Object)(jsonResponse)
js.ConvertToType(Of Object)(data)
Try
'' For Each obj As Object In data
'' Validation = Convert.ToBoolean(obj.Success.Value)
Next
'' ****************************
'' THE PROBLEM IS HERE
Validation = data(0).value
'' **************************
If Validation = False Then
Dim se As New Exception("Object is not validated")
Throw se
End If
Catch ex As FormatException
lblError.Text = ex.Message
Catch ex As InvalidCastException
lblError.Text = ex.Message
Catch ex As Exception
lblError.Text = ex.Message
End Try
End Using
End Using
End Sub
J'aime vraiment l'instantané IDE au milieu de votre code. Vous obtenez +1 pour cela. – djv
Peut-être que vous devriez convertir data (0) .value (qui est un objet) en booléen en utilisant: Convert.ToBoolean (data (0) .value). Sidenote: convertir ce sub en une fonction qui retourne un booléen. Comme l'exemple dans la page Codeproject liée dans la réponse de djv. –
'data (0) .value' semble être un booléen. Et il semble que vous devriez pouvoir le lier tardivement. Mais quel est le type des objets dans 'data'? Tout ce que je vois est 'System.Collections.Generic ...'. Sont-ils KeyValuePairs (Of string, object)? Est-ce que data est alors un Dictionary (Of string, object)? Si c'est le cas, vous ne pouvez pas le saisir avec un entier. Si ma réponse ne fonctionne pas pour vous, essayez 'Validation = data (" succès ")' – djv