Configurazione del passaggio 3: Configurare le impostazioni dell'origine dati
di Keith Newman e Robert McMurray
In questa fase della creazione del sito Web ASP.NET occorre configurare le impostazioni delle origini dati disponibili in IIS.
3.1. Stringhe di connessione all'origine dati
Questa sezione illustra come creare una stringa di connessione al database in IIS tramite l'interfaccia utente Gestione IIS o la riga di comando.
In Pianificare un sito Web ASP.NET in IIS sono state prese le decisioni di progettazione seguenti sulla necessità di aggiungere una stringa di connessione:
- Specificare un nome per la stringa di connessione.
- Specificare il server in cui si trova il database.
- Specificare il nome del database.
- Fornire le credenziali, a meno che non si usi la sicurezza integrata di Windows.
Per creare una stringa di connessione al database tramite l'interfaccia utente
Aprire Gestione IIS e passare al livello da gestire.
In Visualizzazione funzionalità fare doppio clic su Stringhe di connessione.
Nella pagina Stringhe di connessione fare clic su Aggiungi nel riquadro Azioni.
Nella finestra di dialogo Aggiungi stringa di connessione digitare un nome per la stringa di connessione, ad esempio ConnessionePersonale, nella casella di testo Nome.
Nota
Il nome immesso in Gestione IIS corrisponde al nome a cui si fa riferimento nel codice dell'applicazione per recuperare i dati usando questa stringa di connessione.
Con l'opzione SQL Server selezionata, digitare il nome del server che ospita il database nella casella di testo Server e il nome del database nella casella di testo Database.
In Credenziali scegliere una delle opzioni seguenti:
- Selezionare Utilizza Sicurezza integrata di Windows.
- Selezionare Specifica credenziali e fare clic su Imposta. Digitare un nome utente e una password per un account che può connettersi al server e al database nelle caselle di testo Nome utente e Password. Digitare quindi la stessa password nella casella di testo Conferma password e fare clic su OK.
Fare clic su OK.
Per creare una stringa di connessione al database tramite la riga di comando
Per creare una stringa di connessione di database, usare la sintassi seguente:
appcmd set config /commit:MACHINE /section:connectionStrings /+"[connectionString='string', name='string', providerName='string']"
La variabile è il valore della stringa di connessione, la variabile connectionString='string'
name='string'
è la chiave da usare per accedere al valore della stringa di connessione e la variabile è il nome del provider ADO.NET da usare per accedere all'archivio dati sottostante providerName='string'
. Ad esempio, per creare una stringa di connessione per un'applicazione che usa il database Northwind, digitare quanto segue al prompt dei comandi, quindi premere INVIO.
appcmd set config /commit:MACHINE /section:connectionStrings /+"[connectionString='Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;', name='Northwind', providerName='System.Data.SqlClient ']"
3.2. Provider ASP.NET
Questa sezione illustra come aggiungere un provider .NET a IIS tramite l'interfaccia utente Gestione IIS o la riga di comando.
In Pianificare un sito Web ASP.NET in IIS sono state prese le decisioni di progettazione seguenti sull'aggiunta di un provider .NET a IIS:
Selezionare la funzionalità IIS per il provider da specificare: Profili .NET, Ruoli .NET o Utenti .NET.
Selezionare il tipo di provider.
Immettere un nome per il provider.
Se la funzionalità selezionata è Utenti .NET, selezionare il comportamento del provider desiderato tra i seguenti:
- Abilitare la reimpostazione della password
- Abilitazione recupero password
- Richiesta di domanda e risposta
- Richiesta di un indirizzo di posta elettronica univoco
- Archiviazione password in formato sicuro
Specificare il nome della stringa di connessione al database.
Immettere il nome dell'applicazione.
Per aggiungere un provider tramite l'interfaccia utente
Aprire Gestione IIS e passare al livello da gestire.
In Visualizzazione funzionalità fare doppio clic su Provider.
Nella pagina Provider selezionare una delle funzionalità seguenti in Funzionalità:
- Ruoli .NET: consente di configurare il provider per fornire un'interfaccia tra il servizio di gestione dei ruoli di ASP.NET ("gestione ruoli") e le origini dati dei ruoli.
- Utenti .NET: consente di configurare il provider per fornire un'interfaccia tra il servizio di appartenenza di ASP.NET e le origini dati delle appartenenze.
- Profilo .NET: consente di configurare il provider per fornire un'interfaccia tra il servizio profili di ASP.NET e le origini dati dei profili.
Nel riquadro Azioni fare clic su Aggiungi.
Nella finestra di dialogo Aggiungi provider selezionare un tipo di provider nell'elenco a discesa Tipo.
Nella casella di testo Nome digitare un nome per il provider.
Se al passaggio 3 è stata selezionata la funzionalità Utenti .NET, nella sezione Proprietà profilo, in Comportamento, impostare il valore di uno o più dei comportamenti seguenti su True per abilitare il comportamento:
EnablePasswordReset: indica se è possibile reimpostare le password usando il metodo ResetPassword del provider. L'impostazione predefinita è False.
EnablePasswordRetrieval: indica se è possibile recuperare le password usando il metodo GetPassword del provider. L'impostazione predefinita è False.
Importante
Alcuni provider, ad esempio quello di Active Directory, non supportano il recupero delle password. Per questi provider il valore dell'attributo enablePasswordRetrieval è sempre False e non può essere modificato in fase di configurazione.
RequiresQuestionAndAnswer: indica se è necessario fornire una risposta per la password quando il programma chiama i metodi GetPassword e ResetPassword del provider. L'impostazione predefinita è False.
RequiresUniqueEmail: indica se ogni utente registrato deve avere un indirizzo di posta elettronica univoco. L'impostazione predefinita è False.
StorePasswordInSecureFormat: indica se le password sono con hash. L'impostazione predefinita è False.
In Dati digitare il nome della stringa di connessione usata per la connessione al database nella casella di testo ConnectionStringName. Nota: si tratta della stessa stringa di connessione configurata nella funzionalità Stringhe di connessione . Per altre informazioni su come configurare le stringhe di connessione, vedere Configurazione delle stringhe di connessione in IIS 7. Se WindowsTokenRoleProvider è stato selezionato nel passaggio 5 di questa procedura, un nome di stringa di connessione è facoltativo.
Se lo si desidera, nella sezione Proprietà profilo digitare il percorso virtuale dell'applicazione nella casella di testo ApplicationName in Generale. Se non si specifica alcun valore nella casella di testo ApplicationName, l'API di appartenenza assume il valore predefinito HttpContext.Current.Request.ApplicationPath. Questo percorso può essere determinato solo in fase di esecuzione.
Se lo si desidera, nella sezione Proprietà profilo digitare una descrizione del provider nella casella di testo Descrizione in Generale.
Fare clic su OK.
Per aggiungere un provider tramite la riga di comando
Per aggiungere un provider di ruoli .NET, usare la sintassi seguente:
appcmd set config /commit:MACHINE /section:roleManager /+"providers.[name='string', type='string', connectionStringName='string', applicationName='string']"
La variabile name='string'
è il nome del provider. La variabile type='string'
è il tipo di provider. La variabile connectionStringName='string'
è il nome della stringa di connessione utilizzata per connettersi al database. La variabile applicationName='string'
è facoltativa ed è il percorso virtuale dell'applicazione. Ad esempio, per configurare un'applicazione ASP.NET per usare la SqlRoleProvider
classe per archiviare e recuperare le informazioni sul ruolo, digitare quanto segue al prompt dei comandi e quindi premere INVIO:
appcmd set config /commit:MACHINE /section:roleManager /+"providers.[name='SqlProvider', type='System.Web.Security.SqlRoleProvider', connectionStringName='SqlServices', applicationName='SampleApplication']"
Per aggiungere un provider di utenti .NET, usare la sintassi seguente:
appcmd set config /commit:MACHINE /section:membership /+"providers.[name='string', type='string', connectionStringName='string', applicationName='string', enablePasswordReset='true|false', enablePasswordRetrieval='true|false', requiresQuestionAndAnswer='true|false', requiresUniqueEmail='true|false', storePasswordInSecureFormat='true|false']"
Questa sintassi è costituita dagli elementi seguenti:
- La variabile
name='string'
è il nome del provider. - La variabile
type='string'
è il tipo di provider. - La variabile
connectionStringName='string'
è il nome della stringa di connessione utilizzata per connettersi al database. - La variabile
applicationName='string'
è facoltativa ed è il percorso virtuale dell'applicazione. - La variabile
enablePasswordReset=true
abilita la reimpostazione della password usando il metodo ResetPassword del provider. L'impostazione predefinita èfalse
. - La variabile
enablePasswordRetrieval=true
abilita il recupero delle password usando il metodo GetPassword del provider. L'impostazione predefinita èfalse
. - La variabile
requiresQuestionAndAnswer=true
richiede che venga fornita una risposta password quando il programma chiama i metodi GetPassword e ResetPassword del provider. L'impostazione predefinita èfalse
. - La variabile
requiresUniqueEmail=true
richiede che ogni utente registrato abbia un indirizzo di posta elettronica univoco. L'impostazione predefinita èfalse
. - La variabile
storePasswordInSecureFormat=true
richiede che tutte le password siano con hash. L'impostazione predefinita èfalse
.
Ad esempio, per configurare un'applicazione ASP.NET per usare la SqlMembershipProvider
classe per archiviare e recuperare le informazioni utente, digitare quanto segue al prompt dei comandi e quindi premere INVIO:
appcmd set config /commit:MACHINE /section:membership /+"providers.[name='SqlProvider', type='System.Web.Security.SqlMembershipProvider', connectionStringName='SqlServices', applicationName='/', enablePasswordRetrieval='False', enablePasswordReset='True', requiresQuestionAndAnswer='True']"
Per aggiungere un provider di profili .NET, usare la sintassi seguente:
appcmd set config /commit:MACHINE /section:profile /+"providers.[name='string', type='string', connectionStringName='string', applicationName='string']"
La variabile name='string'
è il nome del provider. La variabile type='string'
è il tipo di provider. La variabile connectionStringName='string'
è il nome della stringa di connessione utilizzata per connettersi al database. La variabile applicationName='string'
è facoltativa ed è il percorso virtuale dell'applicazione. Ad esempio, per configurare un'applicazione ASP.NET per usare la SqlProfileProvider
classe per archiviare e recuperare le informazioni sul profilo, digitare quanto segue al prompt dei comandi e quindi premere INVIO:
appcmd set config /commit:MACHINE /section:profile /+"providers.[name='SqlProvider', type='System.Web.Profile.SqlProfileProvider', connectionStringName='SqlServices', applicationName='SampleApplication']"
3.3. Profili .NET
Questa sezione illustra come aggiungere una proprietà di profilo e un gruppo di profili.
In Pianificare un sito Web ASP.NET in IIS sono state prese le decisioni di progettazione seguenti sulle proprietà e i gruppi del profilo in IIS:
- Per ogni proprietà di profilo, fornire il nome proprietà, il tipo di dati (ad esempio stringa o booleano), un valore predefinito, un'opzione di serializzazione (stringa, XML, binario o specifico del provider) e indicare se è di sola lettura e se è disponibile per gli utenti anonimi.
- Per ogni gruppo di profili, specificare il nome del gruppo.
Per aggiungere una proprietà di profilo .NET tramite l'interfaccia utente
Aprire Gestione IIS e passare al livello da gestire.
In Visualizzazione funzionalità fare doppio clic su Profilo .NET.
Nel riquadro Azioni fare clic su Aggiungi proprietà per aggiungere una proprietà di profilo .NET oppure, per aggiungere una proprietà di profilo .NET a un gruppo, selezionare il gruppo al quale si desidera aggiungere la proprietà, quindi fare clic su Aggiungi proprietà al gruppo.
Nella finestra di dialogo Aggiungi proprietà profilo .NET digitare un nome per la proprietà di profilo .NET nella casella di testo Nome.
In Tipo di dati selezionare uno dei tipi di dati seguenti:
- System.Boolean: per configurare la proprietà di profilo .NET con un valore True o False.
- System.Char: per configurare la proprietà di profilo .NET in modo che contenga caratteri Unicode.
- System.DateTime: per configurare la proprietà del profilo .NET in modo da contenere date e ore con valori compresi tra le 12:00:00 mezzanotte, il 1° gennaio 0001 Domini (A.D.) o Common Era (C.E.) fino alle 11:59:59,31 dicembre 9999 A.D. (C.E.)
- System.Decimal: per configurare la proprietà di profilo .NET in modo che contenga i numeri decimali che vanno da 79.228.162.514.264.337.593.543.950.335 positivo a 79.228.162.514.264.337.593.543.950.335 negativo. Il tipo di valore Decimal è adatto per i calcoli finanziari che richiedono numerose cifre integrali e frazionarie significative e non ammettono errori di arrotondamento.
- System.Double: per configurare la proprietà del profilo .NET in modo che contenga un numero a precisione doppia a 64 bit con valori compresi tra 1,79769313486232e308 e 1,79769313486232e308, nonché zero positivo o negativo, PositiveInfinity, NegativeInfinity e Not-a-Number (NaN). Per altre informazioni sul tipo valore Double , vedere Double Structure.
- System.Int32: per configurare la proprietà di profilo .NET in modo che contenga un intero con segno con un valore compreso tra 2.147.483.648 negativo e 2.147.483.647 positivo.
- System.Int64: per configurare la proprietà di profilo .NET in modo che contenga un intero con un valore compreso tra 9.223.372.036.854.775.808 negativo e 9.223.372.036.854.775.807 positivo.
- System.Single: per configurare la proprietà del profilo .NET in modo che contenga un numero a precisione singola a 32 bit con valori compresi tra 3,402823e38 e 3,402823e38, nonché zero positivo o negativo, PositiveInfinity, NegativeInfinity e Not-a-Number (NaN). Per altre informazioni sul tipo Valore singolo , vedere Struttura singola.
- System.String: per configurare la proprietà del profilo .NET come raccolta sequenziale di strutture Char che rappresenta una stringa di testo. Questa è l'impostazione predefinita.
Nella casella di testo Valore predefinito digitare un valore con cui la proprietà verrà inizializzata.
In Opzione di serializzazione selezionare uno dei formattatori di serializzazione seguenti:
- Stringa: selezionare questa opzione quando la proprietà settings viene serializzata come testo non crittografato. Questa è l'impostazione predefinita.
- XML: selezionare questa opzione per serializzare solo le proprietà e i campi pubblici. La serializzazione XML non consente di mantenere la fedeltà al tipo. Questa opzione è utile quando si desidera fornire o utilizzare i dati senza limitare l'applicazione che usa i dati stessi. Poiché XML è uno standard aperto, si tratta di un'opzione utile per la condivisione dei dati nel Web.
- Binario: selezionare questa opzione per mantenere la fedeltà del tipo. La serializzazione binaria è utile per mantenere lo stato di un oggetto tra diverse chiamate di un'applicazione. È possibile, ad esempio, condividere un oggetto tra diverse applicazioni serializzandolo negli Appunti. È possibile serializzare un oggetto in un flusso, in un disco, in memoria, in rete e così via.
- Provider Specifico: selezionare questa opzione quando il provider di impostazioni ha una conoscenza implicita della proprietà o del relativo tipo e può selezionare un meccanismo di serializzazione appropriato. Questa opzione viene spesso usata per serializzazioni personalizzate.
Selezionare la casella Sola lettura per configurare la proprietà di profilo .NET in modo che non possa essere modificata.
Selezionare la casella Disponibile per utenti anonimi per rendere disponibile la proprietà di profilo .NET per gli utenti non autenticati.
Fare clic su OK.
Per aggiungere una proprietà di profilo .NET tramite la riga di comando
Per aggiungere una proprietà di profilo .NET, usare la sintassi seguente:
appcmd set config /commit:MACHINE /section:profile /+"properties.[name='string', type='string', defaultValue='string', serializeAs='String|Xml|Binary|ProviderSpecific', readOnly='true|false', allowAnonymous='true|false']"
La variabile name='string'
è il nome della proprietà del profilo. La variabile type='string'
è il tipo di dati. La variabile defaultValue='string'
è il valore con cui viene inizializzata la proprietà del profilo. La variabile serializeAs='String|Xml|Binary|ProviderSpecific'
imposta il formattatore di serializzazione. La variabile readOnly=true
configura la proprietà del profilo .NET in modo che non possa essere modificata. Il valore predefinito è false
. La variabile allowAnonymous=true
rende disponibile la proprietà del profilo .NET per gli utenti non autenticati. Il valore predefinito è false
. Ad esempio, per specificare una proprietà di profilo che contiene un insieme di elenchi di ricerca recenti, digitare quanto segue al prompt dei comandi, quindi premere INVIO.
appcmd set config /commit:MACHINE /section:profile /+"properties. [name='RecentSearchList', type='System.Collections.Specialized.StringCollection', serializeAs='Xml', allowAnonymous='true']"
Per aggiungere un gruppo di profili .NET tramite l'interfaccia utente
- Aprire Gestione IIS e passare al livello da gestire.
- In Visualizzazione funzionalità fare doppio clic su Profilo .NET.
- Nel riquadro Azioni fare clic su Aggiungi gruppo.
- Nella finestra di dialogo Aggiungi gruppo digitare un nome per il gruppo di profili .NET nella casella di testo Nome e quindi fare clic su OK.
3.4. Ruoli .NET
Questa sezione illustra come aggiungere un ruolo .NET tramite l'interfaccia utente Gestione IIS.
Per aggiungere un ruolo .NET tramite l'interfaccia utente
- Aprire Gestione IIS e passare al livello da gestire.
- In Visualizzazione funzionalità fare doppio clic su Ruoli .NET.
- Nel riquadro Azioni fare clic su Aggiungi.
- Nella finestra di dialogo Aggiungi ruolo .NET digitare il nome del ruolo nella casella di testo Nome e quindi fare clic su OK.
3.5. Utenti .NET
Questa sezione illustra come configurare utenti .NET tramite l'interfaccia utente Gestione IIS.
In Pianificare un sito Web ASP.NET in IIS sono state prese le decisioni di progettazione seguenti per ogni utente da aggiungere a IIS:
- Nome utente
- Posta elettronica
- Password
- Domanda
- Risposta
- Ruolo o ruoli
Per aggiungere un utente .NET tramite l'interfaccia utente
Aprire Gestione IIS e passare al livello da gestire.
In Visualizzazione funzionalità fare doppio clic su Utenti .NET.
Nel riquadro Azioni fare clic su Aggiungi.
Nella finestra di dialogo Dettagli account utente .NET immettere le informazioni seguenti:
- Nome utente (deve essere univoco).
- Posta elettronica (deve usare il formato standard: name@domain.com).
- Password (deve essere una password complessa).
- Conferma password (deve corrispondere alla password immessa in precedenza).
- Domanda (immettere una domanda personalizzata o selezionarne una dall'elenco).
- Risposta alla domanda.
Fare clic su Avanti per selezionare i ruoli per l'utente. Se non è stata abilitata la funzionalità Ruoli .NET, fare clic su Fine.
Facoltativamente, nella finestra di dialogo Ruoli utente .NET selezionare i ruoli disponibili nella casella Ruoli e quindi fare clic su Fine.