Condividi tramite


LightSwitch come origine dati

Oltre a utilizzare LightSwitch per creare applicazioni, è anche possibile utilizzarla come livello intermedio per fornire dati alle altre applicazioni.Quando si pubblicano i dati dell'applicazione da LightSwitch a un server web o Windows Azure, tali dati sono esposti come servizio di apertura del protocollo dati (OData).OData fornisce uno standard per la comunicazione con i servizi dati sul web.Molte violazioni oggi utilizzano OData per lo scambio di dati tra i sistemi e partner, oltre a fornire accesso ai relativi archivi dati.Poiché OData è un protocollo standard, altre applicazioni client in quasi qualsiasi piattaforma o dispositivo può accedere ai dati creati o espone tramite LightSwitch.

Creare servizi di OData

Un servizio di OData viene creato automaticamente per ogni origine dati nell'applicazione, con un endpoint separato di ogni origine dati.Questa funzionalità si applica sia alle tabelle definite nel database intrinseco ma anche a qualsiasi origine dati associata, ad esempio un database SQL Server, un elenco di SharePoint, o addirittura altro servizio di OData.

LightSwitch espone più endpoint OData

Qualsiasi logica di business e autorizzazioni utente definite per le entità quando eseguiranno l'endpoint viene eseguito, indipendentemente dal client acceda ai servizi.Anziché la logica di business di scrittura e le autorizzazioni utente di definizione per ogni applicazione client, è possibile utilizzare il livello intermedio LightSwitch come posizione per centralizzare il codice.

Accedere ai servizi di LightSwitch OData

Quando si distribuisce un'applicazione LightSwitch nella configurazione di tre livelli (che ospita il livello intermedio in Internet Information Services o in Windows Azure), gli endpoint di servizi sono esposti.I nomi dei servizi corrispondono ai nomi delle origini dati.Ad esempio, l'applicazione di esempio in Procedura dettagliata: creazione dell'applicazione di Vision Clinic espone due endpoint di servizi perché dispone di due origini dati: il database di ApplicationData, ovvero intrinseco e il database SQL PrescriptionContoso, associato.Se l'applicazione è stata distribuita a un sito Web denominato "www.contoso.com", gli endpoint di servizi sono https://www.contoso.com/ApplicationData.svc e https://www.contoso.com/PrescriptionContoso.svc.

Nell'interno di ogni servizio, è possibile passare a tutti i set di entità che vengono modellati nella finestra di progettazione di dati.OData definisce un set di operazioni di query che è possibile eseguire sui dati mediante un set di convenzioni URI.È possibile eseguire una query su un servizio con una richiesta HTTP-GET e il servizio restituirà un feed con i risultati nella risposta.Ad esempio, è possibile eseguire una query sul servizio di PrescriptionContoso di clinica della visione con l'uri https://www.contoso.com/PrescriptionContoso.svc/Products per restituire un gruppo di risultati che contiene tutti i record dall'entità di prodotti.

[!NOTA]

Per visualizzare i dati feed da esaminare in Internet Explorer, è necessario disabilitare la casella di controllo Attiva visualizzazione di lettura feed.

Query di OData viene fatta distinzione tra maiuscole e minuscole; se si specifica prodotti anziché prodotti, la query restituisca risultati.È possibile ridefinire ulteriormente le query di OData in diversi modi.Ad esempio, è possibile utilizzare la query https://www.contoso.com/PrescriptionContoso.svc/Products(1) per restituire solo i prodotti che presentano un ProductID di 1.Per restituire tutti i prodotti nella quale preoccupi la categoria, è possibile utilizzare la query https://www.contoso.com/PrescriptionContoso.svc/Products?Category='Lens Care.Tutte le regole business o autorizzazioni che ancora definito in LightSwitch applicati.Di conseguenza, gli utenti che desiderano eseguire le query precedenti richiedono l'autorizzazione per visualizzare i prodotti.

Analogamente, il protocollo di OData definisce una modalità standard per esplorare le relazioni tra le proprietà di navigazione.Ad esempio, è possibile utilizzare la query https://www.contoso.com/PrescriptionContoso/Products(1)/ProductRebates per trovare gli sconti per un prodotto che dispone di un ProductID di 1 nella tabella correlata di ProductRebates.OData supporta molte altre operazioni di query come OrderBy, Top, Skipe Sort.Per ulteriori informazioni, vedere OData: Convenzioni URI.

Proteggere i servizi di LightSwitch OData

Nella maggior parte dei casi, sarà necessario controllare chi può visualizzare e aggiornare i dati del servizio di OData.È possibile controllare l'accesso a un'applicazione LightSwitch utilizzando le impostazioni.LightSwitch supporta tre impostazioni di autenticazione: Nessuna, form e Windows.

Se si sceglie l'autenticazione basata su form, LightSwitch consente due modalità di autenticazione.Una modalità è un protocollo personalizzato che la finestra di dialogo di accesso utilizza e che utilizza un oggetto personalizzato API per un servizio web passare le credenziali e per ottenere il cookie di autenticazione basata su form.Se una richiesta di dati è un cookie valido di autenticazione basata su form, LightSwitch risponde a una richiesta di base HTTP.Questa funzione consente ai client che non sono stati compilati in LightSwitch per passare le credenziali in un protocollo HTTP standard.Se si sceglie l'autenticazione di Windows, LightSwitch richiede a un utente di Windows autenticato di fornire le credenziali.Per ulteriori informazioni, vedere Autenticazione e autorizzazione di LightSwitch.

Qualsiasi meccanismo di autenticazione utilizzato, è necessario utilizzare la sicurezza a livello di trasporto su HTTPS per fornire le credenziali, i token e dati.Senza HTTPS, i form, le credenziali di base e token di autenticazione basata su form sono trasportati come testo normale.L'autenticazione di Windows è più sicuro, ma, senza HTTPS, tutti i dati passati tra client e il server vengono comunque testo normale.Per ovviare a questo inconveniente, LightSwitch ha HTTPS che impostano la Pubblicazione guidata che determina l'applicazione richiede una connessione protetta.Con questa impostazione abilitata, le richieste verranno reindirizzati da HTTP a HTTPS, ma è comunque necessario ottenere e configurare un certificato di HTTPS sul sito Web.Per ulteriori informazioni, vedere Considerazioni sulla sicurezza per LightSwitch.

Oltre a proteggere l'accesso all'applicazione, è inoltre possibile utilizzare la sicurezza basata sui ruoli in LightSwitch limitare l'accesso alle entità specifiche.Ad esempio, è possibile consentire a tutti gli utenti autenticati ai dati dell'ordine di visualizzazione, ma solo i supervisori possono visualizzare i dati dei fogli paga.Per ulteriori informazioni, vedere Autenticazione e autorizzazione di LightSwitch.

LightSwitch non fornisce un meccanismo diretto per nascondere o l'esclusione di set di entità o le proprietà dell'endpoint di OData.Qualsiasi connessione nel livello dati sia visibile nell'endpoint del servizio.È possibile controllare l'accesso alle risorse utilizzando i metodi incorporati di controllo di accesso nel codice di servizio dati.Per ulteriori informazioni, vedere Esecuzione delle attività relative ai dati tramite codice.

Le esempio seguente viene mostrato il codice che impedisce a un utente di aggiornare o eliminare i dati in un'entità dei prodotti:

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 fornisce inoltre un filtro a livello di riga con il metodo EntitySet_Filter.Utilizzando questo metodo, è possibile restituire un set di record da un'entità.Nell'esempio seguente vengono restituiti solo i record cliente con un TerritoryID di 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;
}

Utilizzare i servizi di LightSwitch OData

Qualsiasi applicazione che supporti OData su qualsiasi piattaforma può utilizzare i feed di OData da LightSwitch.I metodi per connettersi a un feed di OData variano in base all'applicazione, ma in genere fornite solo l'endpoint servizio LightSwitch.

La documentazione LightSwitch contiene molti esempi di applicazioni che utilizzano OData.

Vedere anche

Attività

Autenticazione e autorizzazione di LightSwitch

Procedura dettagliata: esposizione e utilizzo di un servizio OData in LightSwitch

Procedura dettagliata: utilizzo dei dati LightSwitch in un'applicazione Windows Store

Procedura dettagliata: utilizzo dei servizi LightSwitch in Excel tramite PowerPivot

Concetti

Esposizione dei dati applicazione LightSwitch

Considerazioni sulla sicurezza per LightSwitch

Esecuzione delle attività relative ai dati tramite codice