Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про C#: jwt, impersonation, authentication

Как можно организовать авторизацию (JWT, имперсонализация)?

Проверяет знание методов аутентификации и прав доступа.

Короткий ответ

  1. JWT – токены с claims (например, роли).

  2. Имперсонализация – временный вход под другим пользователем (требует прав администратора).

Длинный ответ

1. JWT в .NET

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options => {
        options.TokenValidationParameters = new TokenValidationParameters {
            ValidateIssuer = true,
            ValidIssuer = "AuthService",
            ValidateAudience = false
        };
    });

2. Имперсонализация

  • Сценарий: Поддержка отлаживает проблему как пользователь.

  • Реализация:

    [Authorize(Roles = "Admin")]
    public async Task<IActionResult> Impersonate(string userId) {
        var user = await userManager.FindByIdAsync(userId);
        var token = GenerateJwtForUser(user); // Генерация токена с правами пользователя
        return Ok(token);
    }

Вывод:
JWT — для основной авторизации, имперсонализация — для администрирования.

Уровень

  • Рейтинг:

    1

  • Сложность:

    6

Навыки

  • C#

    C#

Ключевые слова

#jwt

#impersonation

#authentication

Подпишись на C# Developer в телеграм