2016-09-09 3 views
0

JWTポータルで実装ログインを使用しています。 有効なユーザー/パスを投稿すると、トークンはOKです。しかし、私は、無効なユーザー/パスを投稿WHE、応答はこの形式になります。Newtonsoft.Jsonからのリターンコードの管理

{StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: 
{ 
    Pragma: no-cache 
    Cache-Control: no-cache 
    Set-Cookie: dnn_IsMobile=False; path=/; HttpOnly 
    Set-Cookie: .ASPXANONYMOUS=YrYcKYrviiUjmN7dSAd2DYWBO5W_Nj2yS_79eZ473OtallQXmOoE_6u73yOGOgBn0im8tE_dcUrIR74EYy_l8HKId7AvyY2OszmP1JrCkR6dLslS0; expires=Fri, 18-Nov-2016 06:11:07 GMT; path=/; HttpOnly 
    Set-Cookie: dnn_IsMobile=False; path=/; HttpOnly 
    Set-Cookie: .ASPXANONYMOUS=YrYcKYrviiUjmN7dSAd2DYWBO5W_Nj2yS_79eZ473OtallQXmOoE_6u73yOGOgBn0im8tE_dcUrIR74EYy_l8HKId7AvyY2OszmP1JrCkR6dLslS0; expires=Fri, 18-Nov-2016 06:11:07 GMT; path=/; HttpOnly 
    Set-Cookie: language=es-CO; path=/; HttpOnly 
    Set-Cookie: ARRAffinity=03cc22ac05b5cc76e788b382c1c33cccde1e727973fdb84dce1c542f8f1d9b46;Path=/;Domain=plcolabv2-pre.azurewebsites.net 
    X-AspNet-Version: 4.0.30319 
    WWW-Authenticate: Bearer bad-credentials 
    Date: Fri, 09 Sep 2016 19:31:07 GMT 
    Content-Length: 0 
    Expires: -1 
}} 

、どのように私は、最初の行の結果を取得し、変数にそれを保存することができますしてください? (StatusCode: 401, ReasonPhrase: 'Unauthorized')。無効なユーザー/パスを投稿すると、変数responseにはnullという値があります。

マイコード: ....

 // Request body 
     byte[] byteData = Encoding.UTF8.GetBytes(jOneLogin); 

     using (var content = new ByteArrayContent(byteData)) 
     { 
      content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 
      response = await client.PostAsync(uri, content); 
     } 

     var results = JsonConvert.DeserializeObject<dynamic>(response.Content.ReadAsStringAsync().Result); 

     var crAccessToken = results.accessToken; 
     .... 

たぶん、簡単な質問では、過去に答えたが、私はそのための具体的なポストを見つけることができません。

ありがとうございます。

+0

あなたは 'HttpClient'を使っていると仮定して、[' HttpResponseMessage.IsSuccessStatusCode'](https://msdn.microsoft.com/en-us/library/system.net.http.httpresponsemessage)をチェックすることはできません。 issuccessstatuscode(v = 118).aspx)?詳細については、[この回答](https://stackoverflow.com/questions/32569860/checking-if-httpstatuscode-represents-success-or-failure/32570068#32570068)を参照してください。 – dbc

+0

私のために働く。ありがとう!私は受け入れられたようにあなたの質問に印を付ける必要がありますが、答えはコメントです。どうしたらいいですか? – Gabms

答えて

0

HttpClientを使用しているため、JsonConvert.DeserializeObject()に電話する前にHttpResponseMessage.IsSuccessStatusCodeにチェックを付けることができます。例については、this answerを参照してください。

+0

ありがとう@dbc。 'IsSuccessStatusCode'、' StatusCode'、 'ReasonPhrase'で終わった – Gabms

関連する問題