Безопасность в ADO.NET Data Services

Тема безопасности в распределенных приложениях является очень актуальной, особеннокогда сервис работает в глобальной сети.
Давайте рассмотрим вопросы безопасности врамках технологии ADO.NET Data Services.В рамках ADO.NET Data Services механизмы безопасности можно рассматривать на несколькихуровнях.Во-первых, т.к.
сервисы ADO.NET Data Services работают в рамках hosting-среды ASP.NET,они очень тесно интегрируются с существующей инфраструктурой ASP.NET.
Это означает,что мы можем использовать существующие механизмы аутентификации ASP.NET, MembershipAPI, Card Space и т.д.
Что интересно, мы можем использовать все существующие наработкив этой области, например собственные механизмы аутентификации, реализованные в рамкахHTTP-модулей.Во-вторых, существует разграничение видимости на уровне объектных коллекций.
Существуютварианты полного доступа (чтения/записи), чтения и выполнения запросов, только чтенияодиночных сущностей, записи одиночных сущностей и др.
Для того, чтобы настроить видимостьна уровне контейнеров необходимо в методе InitializeService воспользоваться объектомconfig.
У этого объекта есть два метода - SetEntitySetAccessRule и SetServiceOperationAccessRule.Эти методы идентичны, за тем исключением, что первый задает видимость для объектныхколлекций, а второй - сервисных операций.publicclassNorthwindService : DataService<NorthwindEntities>{publicstaticvoidInitializeService(IDataServiceConfiguration config){config.SetEntitySetAccessRule("*", EntitySetRights.All);config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);} // ..Первым параметром передается имя контейнера или операции в виде строки.
Если необходимозадать настройки для всех контейнеров/операций, то используется символ “*”.
Тем неменее, в работающих проектах таким синтаксисом я бы пользоваться не стал.
Вторым параметромэтим методам передается значение enum-а, который указаывает, значение видимости.
Например,если мы укажем значение None, то при работе с сервисом заданную коллекцию мы простоне увидим, как будто ее нету :) Ну и последний, самый мощный механизм - это перехватички (interceptors).

Страницы