簡體   English   中英

C#中的HTTPClient和JWT身份驗證

[英]HTTPClient and JWT Authentication in C#

我很難在C#Winforms中使用授權。 我的目的是訪問API。 我已經獲得了訪問令牌,但是當我嘗試將其傳遞給頭時,它會返回一個錯誤:

HTTP錯誤400。

我的代碼:

using (var httpClient = new HttpClient())
{
    var url = @"https://acerportal.com/v1/414232363/status/device/";
    httpClient.BaseAddress = new Uri(url);
    httpClient.DefaultRequestHeaders.Accept.Clear();
    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", accessToken);

    var response = await httpClient.GetStringAsync(url);
    string checkResult = response.ToString();
    MessageBox.Show(checkResult);
}

標題看起來有點不同,格式是Authorization: <type> <credentials> - 所以對於jwt來說就像這樣:

httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);

有關解釋,另請參閱https://security.stackexchange.com/questions/108662/why-is-bearer-required-before-the-token-in-authorization-header-in-a-http-re

您已經通過簡單地刪除輸入上的“Bearer”來解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM