Sentry не показывает информацию о пользователе HttpContext в приложении ASP.NET Core - PullRequest
1 голос
/ 31 мая 2019

Я использовал только базовую конфигурацию Sentry с веб-страницы.

  "Sentry": {
    "Dsn": "",
    "IncludeRequestPayload": true,
    "SendDefaultPii": true,
    "MinimumBreadcrumbLevel": "Debug",
    "MinimumEventLevel": "Warning",
    "AttachStackTrace": true,
    "Debug": true,
    "DiagnosticsLevel": "Error"
  }

Из того, что я собрал, я должен увидеть информацию о пользователе, которую Сетри получает с помощью своего промежуточного программного обеспечения из HttpContext.User.

Но на веб-странице я вижу только Ip :: 1

enter image description here

Должен ли я настроить что-то еще? Кажется, я не могу найти дополнительную конфигурацию.

EDIT

Я использую Sentry версии 1.2.0. Мой HttpContext.

Пользователь точно настроен с информацией пользователя.

enter image description here

Для аутентификации я использую токены Jwt

services.AddAuthentication(options => { options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; })

Привет

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Я не помню, какую версию я использовал в одном из проектов, над которым я работал, и я точно не помню, откуда был обнаружен «Пользователь», но если я правильно помню, было ControllerBase.User

В любом случае, зависит от того, какой механизм авторизации у вас есть, возможно, вам нужно внедрить его HttpContext.User в ControllerBase.User (typeof ClaimsPrincipal)

В вашей коллекции serviceCollection (при запуске, я полагаю) выполните следующее:

services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddTransient<IPrincipal>(provider => provider.GetService<IHttpContextAccessor>().HttpContext?.User);
0 голосов
/ 31 мая 2019

Последний выпуск (версия 1.2.0, от 8 дней назад) включает исправление ошибки, когда пользователь, установленный приложением вручную, не сообщался правильно.

В любом случае, пользователь, существующий в запросе, должен автоматически сообщаться, читая ClaimsPrincipal. Это можно изменить, добавив собственную реализацию IUserFactory в контейнер, который позволяет создавать объект User путем проверки HttpContext.

.

Если у вас версия 1.2.0 и у вас все еще есть проблемы, пожалуйста, поднимите проблему в репозитории GitHub для Sentry .NET SDK:

https://github.com/getsentry/sentry-dotnet/issues/new

...