Как получить идентификатор текущего пользователя при регистрации запросов веб-API через промежуточное ПО - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть следующая функция Invoke в промежуточном программном обеспечении для регистрации веб-запросов API. Он основан на этом примере и работает нормально. Тем не менее, я также хочу сохранить username текущего пользователя, отправляющего запрос.

 public async Task Invoke(HttpContext httpContext, IApiLogService apiLogService)
 {
     try
     {
         _apiLogService = apiLogService;

         var request = httpContext.Request;
         if (request.Path.StartsWithSegments(new PathString("/api")))
         {
             var stopWatch = Stopwatch.StartNew();
             var requestTime = DateTime.UtcNow;
             var requestBodyContent = await ReadRequestBody(request);
             var originalBodyStream = httpContext.Response.Body;

             await SafeLog(requestTime,
                   stopWatch.ElapsedMilliseconds,
                   200,//response.StatusCode,
                   request.Method,
                   request.Path,
                   request.QueryString.ToString(),
                   requestBodyContent
                   );           
         }
         else
         {
             await _next(httpContext);
         }
     }
     catch (Exception ex)
     {
         await _next(httpContext);
     }
 }

Однако свойство User httpContext, по-видимому, пропускает информацию о пользователе. Ниже я делюсь своим контентом. Интересно, как я могу получить идентификатор пользователя, отправляющего запрос. Я не использую проверку подлинности Windows. Есть предложения?

enter image description here

...