У меня есть следующая функция 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](https://i.stack.imgur.com/TvuM4.png)