public async Task <ActionResult> GenerateToken() { using (var ms = new MemoryStream()) { await Request.Body.CopyToAsync(ms); Request.Headers.TryGetValue(SessionHeader, out var sessionIdValue); var inputSessionId = sessionIdValue.Count > 0 ? sessionIdValue[0] : null; var(protocolResult, outputSessionId) = await _tokensService.ProcessTokenRequest(ms.ToArray(), inputSessionId); if (protocolResult != null) { Response.Headers.Add(SessionHeader, outputSessionId); return(new FileContentResult(protocolResult, "application/octet-stream")); } } return(BadRequest()); }