Я делаю тесты для некоторых действий моего контроллера в WebAPI. Я пытаюсь настроить Autofac, так что это будет универсальная область с настройками для каждого теста.Зарегистрировать действие по активации для каждого ApiController
Каждый раз, когда запрашивается ApiController
из Autofac Я хочу, например, создать свойство ClaimsIdentity, чтобы проверить подлинность пользователя.
Это, как я пытаюсь сделать это:
newBuilder.RegisterType<ApiController>().OnActivated(c =>
{
var controller = c.Instance;
controller.Request = Message;
var identity = new ClaimsIdentity();
identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, UserId));
controller.User = new ClaimsPrincipal(identity);
});
newBuilder.Update(container);
Однако это не работает. Если я заменил ApiController
на любой фактический контроллер, тогда он будет работать.
Мои контроллеры зарегистрированы как это:
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());