/// <summary> /// Only to get Api Server public key, by sending JEdixWin Client Name /// </summary> /// <param name="token"></param> /// <returns></returns> public static async Task <bool> ExchangePublicKey(CancellationToken token = new CancellationToken()) { using (var clientKeyExchange = new AparteHttpClient(WinClient.ApiServiceUri, HttpHeader.ExchangePublicKeyHeader())) { var content = JsonSerializer.GetStringContent(new { Name = KeyFile.JEDIX_WIN_CLIENT_NAME }); using (var response = await clientKeyExchange.PostAsync("api/Account/ExchangePublicKeys", content, token).ConfigureAwait(false)) { if (response.IsSuccessStatusCode) { var jwsString = await response.Content.ReadAsStringAsync(); var jws = JWT.ParseFromBase64Url(jwsString); WinClient.ServerPublicKey = jws[JWTConstant.CLAIM_PUBLIC_KEY]; } } } return(ApiClient.WinClient.IsClientAuthorized); }