Поддельная аутентификация во время разработки - PullRequest
0 голосов
/ 25 мая 2018

В моем текущем базовом приложении asp.net MVC мы используем OpenId Connect для аутентификации у провайдера идентификации нашей корпорации.Однако во время локального развития мы не можем связаться с провайдером.Также мы хотели бы легко изменить значения заявок для целей разработки и модульного тестирования.

Я попытался поменять привязку службы для IHttpContextAccessor на DevelopmentHttpContextAccessor, который заполняет идентификатор HttpContext требуемыми утверждениями.Это немного обходной путь, и он также не работает, так как заявки очищаются, когда я проверяю их в своей службе.

Каков стандартный способ обработки этого во время разработки и модульного тестирования?Чего мне не хватает?

1 Ответ

0 голосов
/ 29 мая 2018

Ответом было не фиктивное IHttpContextAccessor, а установка пользовательского ClaimsPrincipal для свойства identity.В вашем Startup.Configure вы можете добавить шаг промежуточного программного обеспечения:

app.Use((httpContext, nextMiddleware) => {
    var claims = new[] {
        // Your claims here
    };
    var claimsIdentity = new ClaimsIdentity(claims);
    var user = new ClaimsPrincipal(claimsIdentity);

    httpContext.User = user;

    return nextMiddleware();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...