Я бы хотел включить проверку подлинности в некоторые автоматические запросы.Атрибут ServiceStack AutoQuery и [Аутентификация]
[Authenticate]
public class BusinessEntitiesService : QueryDb<DataModel.dbo.BusinessEntity>
{
}
Вот моя проблема. Вышеупомянутый класс находится в моем проекте ServiceModel ..., чтобы добавить атрибут [Authenticate], мне нужно добавить ссылку на ServiceStack.dll, которая, как я думаю, может вызвать проблемы в будущем (согласно предыдущему руководству, ссылаться только на ServiceStack. Интерфейсы в ServiceModel). Я не могу добавить вышеуказанный класс к ServiceInterfaces, потому что тогда мне придется ссылаться на то, что везде я использую клиент.
Я также попытался с помощью GlobalRequestFilter ... но это, кажется, лох с AdminFeature плагин:
private bool IsAProtectedPath(string path)
{
return !path.StartsWith("/auth") && !path.StartsWith("/autoquery");
}
GlobalRequestFilters.Add((httpReq, httpResp, requestDto) =>
{
if(IsAProtectedPath(httpReq.PathInfo))
new AuthenticateAttribute().Execute(httpReq, httpResp, requestDto);
});
Не совсем уверен, как лучше справиться с этим.
должен ли IAutoQueryDb, который будет введен в эксплуатацию? Я получаю нулевое исключение ... используя в основном тот же пример из указанной вами ссылки. –
@ChrisKlepeis Yeah 'IAutoQueryDb' зарегистрирован в IOC при регистрации AutoQueryFeature, например' Plugins.Add (новый AutoQueryFeature()); ' – mythz