В методе, помеченном атрибутом `[AllowAnonymous]`, вы не требуете аутентификации пользователя, поэтому вы не будете иметь доступа к JWT-токену прямо из заголовка запроса.
Как альтернативу можно рассмотреть несколько вариантов:
1. Если вы хотите получить доступ к JWT-токену внутри метода, помеченного атрибутом `[AllowAnonymous]`, вам придется вручную извлечь токен из заголовка запроса. Например, если вы используете ASP.NET Core, вы можете получить доступ к заголовкам запроса через объект `HttpContext`, который вы можете внедрить в ваш метод.
```csharp
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
[AllowAnonymous]
[HttpGet]
public IActionResult MyAllowAnonymousMethod()
{
// Получаем контекст HTTP запроса
HttpContext httpContext = HttpContextAccessor.HttpContext;
// Извлекаем значение токена из заголовка `Authorization`
string token = httpContext.Request.Headers["Authorization"].FirstOrDefault()?.Split(" ").LastOrDefault();
// Обработка значения токена
return Ok();
}
```
2. Если вы хотите получить доступ к JWT-токену и ID пользователя, вы можете рассмотреть изменение кода вашего приложения, чтобы обрабатывать аутентификацию и авторизацию пользователей через JWT-токены. Тогда вы сможете использовать `[AllowAnonymous]` только для аутентификации пользователя, а затем получить доступ к JWT-токену и другим данным пользователя.
```csharp
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
[Authorize]
[HttpGet]
public IActionResult MyAuthorizedMethod()
{
// Получаем идентификатор аутентифицированного пользователя
string userId = User.FindFirst("id")?.Value;
// Получаем доступ к JWT-токену
string token = HttpContext.Request.Headers["Authorization"].FirstOrDefault()?.Split(" ").LastOrDefault();
// Обработка значения токена и ID пользователя
return Ok();
}
```
В любом случае, важно обеспечить безопасность и надежность вашего кода, особенно при работе с JWT-токенами, поэтому рекомендуется тщательно проверять и обрабатывать значения токенов перед их использованием.