2016-04-14 6 views
0

Использование документации по API, мы пытаемся использовать это для проверки подлинности: Первичная проверка подлинности с Общественным Применение: Okta - первичная аутентификация с использованием публичного применения VB.Net

http://developer.okta.com/docs/api/resources/authn.html#primary-authentication-with-public-application: Идентифицирует пользователя с именем пользователя/пароль учетные данные с помощью публичного применения

Запрос Example

curl -v -X POST \ 
 
-H "Accept: application/json" \ 
 
-H "Content-Type: application/json" \ 
 
-d '{ 
 
    "username": "[email protected]", 
 
    "password": "correcthorsebatterystaple", 
 
    "relayState": "/myapp/some/deep/link/i/want/to/return/to", 
 
    "options": { 
 
    "multiOptionalFactorEnroll": false, 
 
    "warnBeforePasswordExpired": false 
 
    } 
 
}'

Попытка это в VB.Net, мы получаем:

Dim request As WebRequest = WebRequest.Create("https://dev-XXX.oktapreview.com/api/v1/authn") 
 
request.Credentials = New NetworkCredential(.UserName, .Password) 
 
request.ContentType = "application/json" 
 
request.Method = "POST" 
 

 
Dim response As WebResponse = request.GetResponse()

Когда мы получаем ответ, он дает ошибку «Удаленный сервер возвратил ошибку: (400) Плохой запрос. и не более полезная информация.

Очевидно, что мы хотим сделать, это сделать WebRequest с правильно отформатированными параметрами и возвращает WebResponse, что мы можем опрашивать для Ответа успеха:

{ 
 
    "expiresAt": "2015-11-03T10:15:57.000Z", 
 
    "status": "SUCCESS", 
 
    "relayState": "/myapp/some/deep/link/i/want/to/return/to", 
 
    "sessionToken": "00Fpzf4en68pCXTsMjcX8JPMctzN2Wiw4LDOBL_9pe", 
 
    "_embedded": { 
 
    "user": { 
 
     "id": "00ub0oNGTSWTBKOLGLNR", 
 
     "passwordChanged": "2015-09-08T20:14:45.000Z", 
 
     "profile": { 
 
     "login": "[email protected]", 
 
     "firstName": "Dade", 
 
     "lastName": "Murphy", 
 
     "locale": "en_US", 
 
     "timeZone": "America/Los_Angeles" 
 
     } 
 
    } 
 
    } 
 
}

Спасибо заранее!

ответ

0

Вы устанавливаете учетные данные для запроса вместо отправки полезной нагрузки JSON.

Заканчивать этот пример: http://dotnetpad.com/7ri4979f

Основе this question and answer.

+0

Благодарим за отзыв, Томас! –

+0

Это отлично работало, очень ценилось! –