Поделиться через


LightSwitch как источник данных

В дополнение к использованию LightSwitch для создания приложения можно также использовать его как средний уровень, чтобы предоставлять данные для других приложений.Если публиковать данные приложения из LightSwitch на веб-сервер или в просини Windows, предоставлены эти данные как открыть службу протокола данных (OData).OData предоставляет стандарт для взаимодействия со службами данных через интернет.Во многих предприятиях сегодня используют OData для обмена данными между системами и участниками, в дополнение к предоставлению доступа в них хранилища данных.Поскольку OData стандартный протокол, практически любых других клиентских приложений на платформе или устройстве могут получить доступ к данным, создании или которому предоставляется через LightSwitch.

Создание службы OData

Служба OData автоматически создана для каждого источника данных в приложении с отдельной конечной точкой для каждого источника данных.Эта возможность не применяется только к таблицам, указанные в встроенной базе данных, но также к любому вложенный источником данных, таким как база данных SQL Server, список SharePoint или даже другая служба OData.

LightSwitch предоставляет доступ к нескольким конечным точкам OData

Все бизнес-логика и разрешения пользователя, указанной для сущностей, выполняются, когда конечная точка будет получить доступ, независимо от того, какой клиент обращается к службе.Вместо бизнес-логика записи и разрешения пользователя указание для каждого клиентского приложения можно использовать средний уровень LightSwitch как место для централизовать код.

Доступ к службам LightSwitch OData

При развертывании приложения LightSwitch в конфигурации 3 уровней (средний уровень или при размещении службы в IIS или просини Windows), конечные точки службы предоставлены.Имена служб соответствуют именам пользовательских источников данных.Например, пример приложения, в Пошаговое руководство. Создание приложения Vision Clinic предоставляет 2 конечной точки службы, поскольку он имеет 2 источника данных: ApplicationData база данных, которая внутреннеприсуща, а в базе данных SQL PrescriptionContoso, присоединяется.Если приложение было развернуто на веб-сайте, который называется "www.contoso.com" конечные точки службы будет https://www.contoso.com/ApplicationData.svc и https://www.contoso.com/PrescriptionContoso.svc.

Внутри каждой службы можно переходить к всем наборам сущностей, которые моделируются в конструкторе данных.OData определяет набор операций запроса, которые можно выполнить на данных с помощью набора соглашений универсальный код ресурса (uri).Можно запросить службу с запросом HTTP-GET, а служба возвратит канала с результатами в ответе.Например, можно запросить службу PrescriptionContoso клиники зрения с помощью универсального кода ресурса (uri) https://www.contoso.com/PrescriptionContoso.svc/Products для возврата результирующего набора, содержащего все записи из сущностей products.

ПримечаниеПримечание

Чтобы просмотреть необработанные данные канала в Internet Explorer, необходимо отключить флажок Включить показ ленты чтения канала.

Запросы OData учитывается регистр; при указании products вместо Products, то запрос не возвратит никаких результатов.Далее можно уточнить запросов OData несколькими способами.Например, можно использовать запрос https://www.contoso.com/PrescriptionContoso.svc/Products(1) для возвращения только продукт, который имеет идентификатор 1.Чтобы возвратить все продукты в объективе заботят категория, можно использовать запрос https://www.contoso.com/PrescriptionContoso.svc/Products?Category='Lens Care.Все бизнес-правила или разрешения, указанные в LightSwitch по-прежнему применяются.Поэтому пользователям, которым необходимо выполнить предыдущие запросы, необходимо разрешение на просмотр продуктов.

Аналогично, протокол OData задает стандартный способ навигация по связям с помощью свойств навигации.Например, можно использовать запрос https://www.contoso.com/PrescriptionContoso/Products(1)/ProductRebates чтобы найти скидки для продукта, который имеет идентификатор 1 в связанной таблице ProductRebates.OData поддерживает множество других операций запроса как OrderBy, Top, Skip и Sort.Дополнительные сведения см. в разделе OData: Соглашения uri.

Защита служб LightSwitch OData

В большинстве случаев требуется отслеживать права доступа и обновления данных в службе OData.Можно контролировать доступ для приложений LightSwitch с помощью его параметров.LightSwitch поддерживает 3 параметра проверки подлинности: None, формы и Windows.

Если выбрана проверка подлинности с помощью форм, то LightSwitch включает 2 режимов проверки подлинности.Один режим пользовательский протокол, который использования диалогового окна входа в систему и который использует пользовательский интерфейс API для веб-службы для передачи учетных данных и получить файл cookie форма- проверки подлинности.Если запрос данных отсутствует допустимый файл cookie форма- проверки подлинности, то LightSwitch отвечает с возможностью HTTP основной.Этот ответ позволяет клиентам, которые не были разработаны в LightSwitch для способность учетных данных по стандартным протокол HTTP.Если выбрана проверка подлинности Windows, то LightSwitch требует прошедший проверку пользователь Windows предоставляет учетные данные.Дополнительные сведения см. в разделе Аутентификация и авторизация LightSwitch.

Любой механизм проверки подлинности используется, следует рассмотреть использование безопасности уровня транспортировка- по протоколу HTTPS, чтобы предоставить учетные данные, токены, и данные.Без HTTPS, формы основные учетные данные и токены форма- проверки подлинности транспортируется в виде обычного текста.Проверка подлинности Windows, но более безопасно, без HTTPS, все данные, передаваемые между клиентом и сервером, по-прежнему будут обычным текстом.Чтобы избежать этого, LightSwitch имеет параметр HTTPS в мастере публиковать, который вызывает приложение потребоваться наличие безопасного соединения.Если этот параметр включен, запросы будут перенаправитьы от HTTP, HTTPS, но по-прежнему должны получить и настроить сертификат HTTPS на своем веб-сайте.Дополнительные сведения см. в разделе Вопросы безопасности LightSwitch.

В дополнение к предоставлению доступа к приложению, можно также использовать безопасность на основе ролей в LightSwitch чтобы ограничить доступ к отдельным сущностям.Например, можно разрешить все авторизованные пользователи на значение сведения о заказе, но только заведущие могут отображать сведения о зарплате.Дополнительные сведения см. в разделе Аутентификация и авторизация LightSwitch.

LightSwitch не предоставляет напрямую механизм скрывать или исключить наборы сущностей или свойства сущности из конечной точки OData.Все действия подключении к уровню данных будет видна в конечной точке службы.Можно контролировать доступ к этим ресурсам с помощью встроенных методов управления доступом в коде службы данных.Дополнительные сведения см. в разделе Выполнения задач, связанных с данными, с помощью кода.

В следующем примере показан код, который предотвращает пользователя от обновления или удаления в данные сущности продуктов:

Namespace LightSwitchApplication
   Public Class PrescriptionContosoService
      Private Sub Product_CanUpdate(ByRef result As Boolean)
         result = False
      End Sub
      Private Sub Product_CanDelete(ByRef result As Boolean)
         result = False
      End Sub
      Private Sub Product_CanInsert(ByRef result As Boolean)
         result = False
      End Sub
   End Class
End Namespace
namespace LightSwitchApplication
{
   public partial class PrescriptionContosoService
   {
      partial void Product_CanUpdate(ref bool result)
      {
         result = false;
      }
      partial void Product_CanDelete(ref bool result)
      {
         result = false;
      }
      partial void Product_CanInsert(ref bool result)
      {
         result = false;
      }
   }
}

LightSwitch также предоставляет строка- уровень фильтрации с помощью метода EntitySet_Filter.С помощью этого метода можно возвратить меньший набор записей сущности.Следующий пример возвращает только те записи клиента, имеющих TerritoryID 5.

Private Sub Customers_Filter(ByRef filter As Expression(Of Func(Of Customer, Boolean)))
    filter = Function(e) e.TerritoryId = 5
End Sub
private void Customers_Filter(ref Expression<Func<Customer, bool>> filter)
{
filter = e => e.TerritoryId == 5;
}

Использование служб LightSwitch OData

Любое приложение, которое поддерживает OData на любой платформе может использовать потоки OData из LightSwitch.Методы подключиться к каналу OData зависят от приложения, но обычно нужно указывать только конечную точку службы LightSwitch.

Документация LightSwitch содержит ряд примеров приложений, использующих OData.

См. также

Задачи

Аутентификация и авторизация LightSwitch

Пошаговое руководство. Предоставление доступа к службе OData и ее использование в LightSwitch

Пошаговое руководство. Использование данных LightSwitch в приложении для Магазина Windows

Пошаговое руководство. Использование служб LightSwitch в Excel с использованием PowerPivot

Основные понятия

Предоставление доступа к данным приложения LightSwitch

Вопросы безопасности LightSwitch

Выполнения задач, связанных с данными, с помощью кода