Exemplo n.º 1
0
        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());
        }