Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Tra gli argomenti trattati in questa sezione è incluso il codice per un esempio di provider di profili ASP.NET. In questo esempio vengono utilizzati il provider di dati .NET Framework per ODBC per la connessione a un'origine dati ODBC e un database Access come origine dati.
In questo argomento vengono illustrati i dettagli di implementazione relativi al provider di profili dell'esempio e viene descritto come compilare l'esempio stesso e configurare un'applicazione ASP.NET per utilizzare il provider di esempio.
Nota: |
|---|
Poiché le origini dati supportano diverse sintassi SQL, alcuni comandi SQL funzioneranno con un'origine dati ma non con un'altra. Si consiglia pertanto di creare un provider di profili specifico per l'origine dati, anche se per l'accesso all'origine dati si utilizza il provider di dati .NET Framework per ODBC o per OLEDB. Ad esempio, è possibile creare provider specifici, come il provider di profili Sybase, il provider di profili Oracle e così via. |
Per esaminare il codice del provider di esempio, vedere Esempio di implementazione di provider di profili.
Creazione del database di un provider
Il provider è progettato per leggere e scrivere dati nelle tre tabelle del database: Profiles, StockSymbols e ProfileData. Il provider di profili dell'esempio supporta due proprietà dei profili: un elenco di simboli dei titoli e un codice di avviamento postale.
Ciascun profilo utente viene identificato in maniera univoca nella tabella Profiles del database. Questa tabella contiene le informazioni del profilo come, ad esempio, il nome dell'applicazione e la data dell'ultima operazione. La tabella Profiles ha una chiave primaria a incremento automatico utilizzata per identificare in modo univoco ciascun riga e definire le relazioni tra la tabella e le altre tabelle che contengono i valori delle proprietà del profilo.
La tabella StockSymbols contiene i valori dell'elenco dei simboli dei titoli archiviati e recuperati utilizzando la proprietà StockSymbols. La tabella StockSymbols è in relazione uno-a-molti con la tabella Profiles, perché a ogni profilo utente può corrispondere qualsiasi numero di simboli titolo.
Il valore della proprietà ZipCode è archiviato nella tabella ProfileData. La tabella ProfileData è in relazione uno-a-uno con la tabella Profiles.
Per creare le tabelle del database per l'archiviazione di profili
Creare un nuovo database Microsoft Access o aprirne uno esistente.
Nota:Per l'archiviazione del database nelle cartelle di file dell'applicazione Web, si consiglia di utilizzare la cartella App_Data dell'applicazione. Il contenuto di App_Data è accessibile al codice dell'applicazione ma non è esposto alle richieste Web. Inoltre, i processi ASP.NET hanno dispongono di autorizzazioni in lettura e scrittura per la cartella App_Data.
Con Access o qualsiasi altro strumento in grado di creare tabelle in un database Access, generare la seguente query di definizione dei dati per creare la tabella Profiles:
CREATE TABLE Profiles ( UniqueID AutoIncrement NOT NULL PRIMARY KEY, Username Text (255) NOT NULL, ApplicationName Text (255) NOT NULL, IsAnonymous YesNo, LastActivityDate DateTime, LastUpdatedDate DateTime, CONSTRAINT PKProfiles UNIQUE (Username, ApplicationName) )Utilizzare la seguente query di definizione dei dati per creare la tabella StockSymbols:
CREATE TABLE StockSymbols ( UniqueID Integer, StockSymbol Text (10), CONSTRAINT FKProfiles1 FOREIGN KEY (UniqueID) REFERENCES Profiles )Utilizzare la seguente query di definizione dei dati per creare la tabella ProfileData:
CREATE TABLE ProfileData ( UniqueID Integer, ZipCode Text (10), CONSTRAINT FKProfiles2 FOREIGN KEY (UniqueID) REFERENCES Profiles )
Concessione di accesso al log eventi
Se durante l'utilizzo dell'origine dati il provider di esempio rileva un'eccezione, anziché restituirla all'applicazione ASP.NET scrive i relativi dettagli nel log eventi dell'applicazione Windows. Si tratta di una misura di protezione per impedire che nell'applicazione ASP.NET vengano esposte informazioni riservate dell'origine dati.
Viene specificato un evento Source di "OdbcProfileProvider" dal provider di esempio. Perché l'applicazione ASP.NET possa aggiornare correttamente il log eventi è necessario consentire l'accesso al log eventi.
Nota: |
|---|
Se non si desidera che il provider di esempio scriva le eccezioni nel log eventi, è possibile impostare l'attributo writeExceptionsToEventLog su false nella configurazione del provider nel file Web.config. |
Per fornire l'accesso al log eventi
Creare la seguente chiave del registro utilizzando Regedit.exe o un altro strumento di modifica del registro di sistema di Windows:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\OdbcProfileProvider
Compilazione del provider di esempio
Per utilizzare il provider di esempio, il codice deve essere accessibile all'applicazione Web. Tale operazione può essere eseguita in due modi diversi.
Salvare il codice origine del provider di esempio nella cartella App_Code dell'applicazione. In questo caso non è necessario compilare manualmente il codice di esempio.
Compilare il codice e salvare l'assembly ottenuto nella cartella Bin dell'applicazione, oppure rinominarlo con un nome sicuro e salvarlo nella Global Assembly Cache.
Per testare il provider di esempio senza compilazione manuale
Creare una cartella App_Code nella directory principale dell'applicazione, se non è già presente.
Nella cartella App_Code, creare un file di testo OdbcProfileProvider.vb o OdbcProfileProvider.cs in base al linguaggio di programmazione che si desidera utilizzare.
Nota:Se nella directory App_Code dell'applicazione è già presente il codice origine, è necessario aggiungere la versione del provider dell'esempio scritta nello stesso linguaggio del codice esistente nella directory. ASP.NET compilerà il provider alla prima richiesta della pagina da parte dall'applicazione ASP.NET.
Copiare e incollare il codice origine dell'esempio (nel linguaggio appropriato) nel file di testo corrispondente e salvare il file.
Per compilare il provider di esempio
Creare una cartella per i file di origine dei controlli personalizzati e delle classi correlate.
Nella cartella del codice origine, creare un file di testo OdbcProfileProvider.vb o OdbcProfileProvider.cs in base al linguaggio di programmazione che si desidera utilizzare.
Nota:Non salvare il codice origine nella cartella App_Code se si desidera compilare manualmente l'esempio e aggiungerne l'assembly alla cartella Bin. In questo modo, il tipo di provider sarà presente nell'assembly compilato e nell'assembly generato dinamicamente da ASP.NET nella cartella App_Code. Verrà generato un riferimento ambiguo durante il caricamento del provider e tutti i codici che fanno riferimento al tipo genereranno un errore di compilazione.
Copiare e incollare il codice origine per ogni esempio nel file di testo corrispondente e salvare il file.
Eseguire il comando seguente dalla cartella del codice origine per compilare i controlli e le classi correlate in un assembly.
vbc /out:OdbcProfileProvider.dll /t:library OdbcProfileProvider.vb /r:System.Web.dll /r:System.Configuration.dllcsc /out:OdbcProfileProvider.dll /t:library OdbcProfileProvider.cs /r:System.Web.dll /r:System.Configuration.dllL'opzione del compilatore /t:library richiede al compilatore di creare una libreria (invece di un assembly eseguibile). L'opzione /out fornisce un nome per l'assembly e l'opzione /r elenca gli assembly collegati all'assembly in uso.
Nota:Se non è possibile eseguire il comando del compilatore, è necessario aggiungere il percorso di installazione .NET Framework alla variabile PATH prima di eseguire il comando. In Windows, fare clic con il pulsante destro del mouse su Risorse del computer, scegliere Proprietà, quindi selezionare la scheda Avanzate e fare clic sul pulsante Variabili di ambiente. Nell'elenco Variabili di sistema, fare doppio clic sulla variabile Path. Nella casella di testo Valore variabile, aggiungere un punto e virgola (;) alla fine dei valori presenti nella casella di testo, quindi digitare il percorso di installazione di .NET Framework. .NET Framework viene in genere installato nella cartella di installazione nel percorso Windows in \Microsoft.NET\Framework\versionNumber.
Configurazione del provider di esempio in un'applicazione ASP.NET
Per utilizzare il provider di esempio con un'applicazione Web ASP.NET è necessario configurare l'applicazione per registrare il provider.
Nella configurazione di esempio si presuppone che il sito Web sia impostato in modo da utilizzare l'autenticazione basata su form e includa una pagina ASP.NET denominata Login.aspx che consente agli utenti di accedere e di stabilire l'identità dell'utente. Nella configurazione dell'esempio viene inoltre supportata l'autenticazione anonima; non è quindi richiesto agli utenti di effettuare l'accesso.
Per configurare un'applicazione per l'utilizzo del provider di esempio
Creare una pagina ASP.NET denominata Login.aspx ed effettuare una delle seguenti operazioni:
Aggiungervi un controllo Login, se l'applicazione è già configurata per utilizzare l'appartenenza ASP.NET.
Creare un form di accesso e utilizzare l'autenticazione basata su form per autenticare gli utenti. Per informazioni, vedere Procedura: implementare l'autenticazione basata su form semplice.
Nota:L'elemento di configurazione necessario per l'autenticazione dei form è illustrato nel passaggio 4.
Creare un DSN denominato "OdbcProfile" nel computer in uso e configurarlo per includere le informazioni di connessione al database di Access creato precedentemente.
Creare un file di testo Web.config nella directory principale dell'applicazione ASP.NET, se il file non è già presente nell'applicazione.
Nel file Web.config, aggiungere i seguenti elementi:
<configuration> <connectionStrings> <add name="OdbcProfile" connectionString="DSN=OdbcProfile;" /> </connectionStrings> <system.web> <authentication mode="Forms" > <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" /> </authentication> <anonymousIdentification enabled="true" /> <profile defaultProvider="OdbcProvider"> <providers> <add name="OdbcProvider" type="Samples.AspNet.Profile.OdbcProfileProvider" connectionStringName="OdbcProfile" /> </providers> <properties> <add name="ZipCode" allowAnonymous="true" /> <add name="CityAndState" provider="AspNetSqlProfileProvider" allowAnonymous="true" /> <add name="StockSymbols" type="System.Collections.ArrayList" allowAnonymous="true" /> </properties> </profile> </system.web> </configuration>
Vedere anche
Concetti
Implementazione di un provider di profili
Cenni preliminari sulle proprietà dei profili ASP.NET