Вот мой конфиг Authreq.GetApiKey() не выполняет какой-либо запрос в БД ServiceStack ApiKeyAuthProvider
Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new IAuthProvider[]
{
new ApiKeyAuthProvider(AppSettings) {RequireSecureConnection = false }
})
{
IncludeRegistrationService = true,
});
Глобальный фильтр
GlobalRequestFilters.Add((req, res, requestDto) =>
{
LastApiKey = req.GetApiKey();
});
Я генерироваться ключ Api в БД и пытается передать ключ через почтальон или JsonServiceClient с базовой аутентификацией, имеющий ключ API в имени пользователя запроса Http. Я попытался передать токен-носитель в запросе Http тоже, но не смог получить api-ключ из req.GetApiKey(). Когда я вижу через профилировщик SQL, он не показывает какой-либо запрос. Однако я могу разрешить IManageApiKeys и умею выполнять его методы. Нужен ли мне какой-либо атрибут в моей службе или какая-либо дополнительная конфигурация в AppHost?
То, что я отсутствовал [Authenticate] атрибут прикладывал на апи службы метод и не работал. Когда я применил класс обслуживания, он работал, как ожидалось. Спасибо @mythz. – Anuj
@Anuj FYI это связано с тем, что когда атрибут '[Authenticate]' находится в действии, он выполняется после запуска GlobalRequestFilters, но 'base.Request.GetApiKey()' все равно будет присутствовать при выполнении Сервиса. – mythz