Classic ASP
Classic ASP
Duo Auth API - Preauth
See more Duo Auth MFA Examples
The /preauth endpoint determines whether a user is authorized to log in, and (if so) returns the user's available authentication factors.Chilkat Classic ASP Downloads
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
success = 0
' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
integrationKey = "DIMS3V5QDVG9J9ABRXC4"
secretKey = "HWVQ46nubLBxhnRlKddTltWIi3hL0fIQF2qTvLab"
set http = Server.CreateObject("Chilkat.Http")
http.Accept = "application/json"
' Use your own hostname here:
url = "https://api-a03782e1.duosecurity.com/auth/v2/preauth"
http.Login = integrationKey
http.Password = secretKey
set req = Server.CreateObject("Chilkat.HttpRequest")
req.AddParam "username","matt"
req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"
set resp = Server.CreateObject("Chilkat.HttpResponse")
success = http.HttpReq(url,req,resp)
If (success = 0) Then
Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
Response.End
End If
Response.Write "<pre>" & Server.HTMLEncode( "status code = " & resp.StatusCode) & "</pre>"
set json = Server.CreateObject("Chilkat.JsonObject")
success = json.Load(resp.BodyStr)
json.EmitCompact = 0
Response.Write "<pre>" & Server.HTMLEncode( json.Emit()) & "</pre>"
' Sample successful output:
' status code = 200
' {
' "response": {
' "devices": [
' {
' "capabilities": [
' "auto",
' "push",
' "sms",
' "mobile_otp"
' ],
' "device": "DP6GYVTQ5NK82BMR851F",
' "display_name": "iOS (XXX-XXX-1871)",
' "name": "",
' "number": "XXX-XXX-1871",
' "type": "phone"
' }
' ],
' "result": "auth",
' "status_msg": "Account is active"
' },
' "stat": "OK"
' }
' Sample code to parse the above JSON response..
' Use this online tool to generate parsing code from sample JSON:
' Generate Parsing Code from JSON
responseResult = json.StringOf("response.result")
responseStatus_msg = json.StringOf("response.status_msg")
stat = json.StringOf("stat")
i = 0
count_i = json.SizeOfArray("response.devices")
Do While i < count_i
json.I = i
device = json.StringOf("response.devices[i].device")
display_name = json.StringOf("response.devices[i].display_name")
name = json.StringOf("response.devices[i].name")
number = json.StringOf("response.devices[i].number")
v_type = json.StringOf("response.devices[i].type")
j = 0
count_j = json.SizeOfArray("response.devices[i].capabilities")
Do While j < count_j
json.J = j
strVal = json.StringOf("response.devices[i].capabilities[j]")
j = j + 1
Loop
i = i + 1
Loop
%>
</body>
</html>