2015-06-18 4 views
1

Я пытался защитить свою службу данных WCF, разработав индивидуальный механизм аутентификации в сеансе, который идентифицирует клиента на основе нескольких критериев. Затем я хочу перехватить все запросы и запрос без запроса на основании результата этой проверки подлинности. Перехват запросов не проблема, но поскольку у меня может быть много таблиц, я искал способ перехватить все запросы в одном и том же месте.Служба данных WCF: перехват всех запросов

Например, вместо

[QueryInterceptor("Entities")] 
public Expression<Func<Entity, Boolean> FilterEntities(){ 
    return x=> IsAuthenticated; 
} 

делает

[QueryInterceptor("*")] 
public Expression<Func<T, Boolean> FilterEntities<T>(){ 
    return x=> IsAuthenticated; 
} // As a logical description only, of course it won't work as it is 

Так есть ли способ фильтрации всех запросов и не запросов запросов в WCF службы данных на всех?

ответ

0

Похоже, что это не достижимо сейчас с помощью QueryInterceptor, и вы должны добавить каждый набор имя лица вручную: https://github.com/OData/odata.net/blob/ODATAV3/WCFDataService/Service/System/Data/Services/DataServiceStaticConfiguration.cs#L188

Но вы можете обратиться к этой серии блога для выполнения авторизации в службе WCF Data. http://blogs.msdn.com/b/odatateam/archive/2010/07/21/odata-and-authentication-part-6-custom-basic-authentication.aspx

Смежные вопросы