Configurazione di FTP con l'autenticazione di appartenenza a .NET in IIS 7
Compatibilità
Versione | Note |
---|---|
IIS 7,5 | Il servizio FTP 7.5 viene fornito come funzionalità per IIS 7.5 in Windows 7 e Windows Server 2008 R2. |
IIS 7.0 | I servizi FTP 7.0 e FTP 7.5 sono stati spediti fuori banda per IIS 7.0, che richiedeva il download e l'installazione del servizio dall'URL seguente: . https://www.iis.net/downloads/microsoft/ftp |
Introduzione
Microsoft ha creato un nuovo servizio FTP completamente riscritto per Windows Server® 2008. Questo nuovo servizio FTP incorpora molte nuove funzionalità che consentono agli autori Web di pubblicare contenuto meglio di prima e offre agli amministratori Web più opzioni di sicurezza e distribuzione.
Questo documento illustra come configurare il sito Web predefinito per l'autenticazione basata sull'appartenenza FTP.
Nota
Questo documento è stato scritto usando un'istanza di SQL Server installata nel server Web locale.
Prerequisiti
Per completare le procedure descritte in questo articolo, sono necessari gli elementi seguenti:
IIS 7.0 deve essere installato in Windows Server 2008 e deve essere configurato quanto segue:
- Il sito Web predefinito creato dall'installazione di IIS 7.0 deve essere ancora presente.
- Internet Information Services Manager deve essere installato.
È necessario installare il nuovo servizio FTP. È possibile scaricare e installare il servizio FTP dal https://www.iis.net/ sito Web usando uno dei collegamenti seguenti:
- FTP 7.5 per IIS 7.0 (x64)
- FTP 7.5 per IIS 7.0 (x86)
Impostare le autorizzazioni per il contenuto per consentire l'accesso al processo COM di estendibilità che gestisce l'autenticazione:
Aprire un prompt dei comandi.
Digitare il comando seguente:
ICACLS "%SystemDrive%\inetpub\ftproot" /Grant "Network Service":M /T
Chiudere il prompt dei comandi.
Aggiunta della pubblicazione FTP al sito Web predefinito
In questa prima sezione si aggiunge la pubblicazione FTP al sito Web predefinito e si aggiungono le impostazioni necessarie per consentire all'account amministratore locale di modificare il contenuto.
In Gestione IIS 7.0, nel riquadro Connessioni espandere il nodo Siti nell'albero, quindi fare clic sul sito Web predefinito.
Fare clic su Aggiungi pubblicazione FTP nel riquadro Azioni .
Quando viene visualizzata la procedura guidata Aggiungi pubblicazione sito FTP :
Scegliere un indirizzo IP per il sito FTP dall'elenco a discesa Indirizzo IP oppure scegliere di accettare la selezione predefinita di "Tutti non assegnati". Per questa procedura dettagliata, immettere l'indirizzo IP di loopback locale per il computer digitando "127.0.0.1" nella casella Indirizzo IP .
Nota
Se si usa IPv6, è necessario aggiungere anche l'associazione localhost IPv6 di "::1".
In genere, si immette la porta TCP/IP per il sito FTP nella casella Porta . Per questa procedura dettagliata, scegliere di accettare la porta predefinita 21.
Per questa procedura dettagliata, non verrà usato un nome host, quindi assicurarsi che la casella Host virtuale sia vuota.
Assicurarsi che l'elenco a discesa Certificato SSL sia impostato su "Non selezionato" e che sia selezionata l'opzione Consenti SSL .
Dopo aver completato questi elementi, fare clic su Avanti.
Nella pagina successiva della procedura guidata non verranno configurate impostazioni di autenticazione o autorizzazione perché queste impostazioni verranno configurate in un secondo momento. Fare clic su Fine per completare la procedura guidata.
Riepilogo
Per riepilogare gli elementi completati in questa sezione, è stata aggiunta la pubblicazione FTP al "Sito Web predefinito" in base a:
- Aggiunta di un'associazione FTP per il sito Web per l'indirizzo IP di loopback locale sulla porta 21
- Scelta di non usare Secure Sockets Layer (SSL) per il sito FTP.
Nota
Non sono ancora state abilitate impostazioni di autenticazione o autorizzazione.
Configurazione di ASP.NET per l'autenticazione di appartenenza
Configurare la SQL Server locale per l'appartenenza a ASP.NET
Questa sezione descrive il processo di base per la configurazione di ASP.NET per l'autenticazione dell'appartenenza. Per informazioni dettagliate, vedere la sezione "Configurare ASP.NET per l'appartenenza" nell'argomento Procedura: Usare l'autenticazione basata su form con SQL Server in ASP.NET 2.0 nel sito Web MSDN.
Se non si ha accesso a un SQL Server esistente, è necessario installare SQL Server.
Se non è già stato creato un database ASP.NET, è necessario compilare il database ASP.NET nel server SQL usando il comando appropriato nell'elenco seguente per la versione del framework in uso:
Framework a 32 bit:
"%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe" -S localhost -A all -E
Framework a 64 bit:
"%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regsql.exe" -S localhost -A all -E
Nota
Per usare un server SQL remoto anziché "localhost", come illustrato nell'esempio precedente, vedere la sezione "Considerazioni sulla distribuzione" nell'articolo Procedura: Usare l'autenticazione basata su form con SQL Server in ASP.NET 2.0.
Poiché il processo COM per l'estendibilità FTP viene eseguito come "NT AUTHORITY\Network Service", è necessario aggiungere l'account "NT AUTHORITY\Network Service" al database ASP.NET nel SQL Server. A tale scopo, seguire questa procedura:
- Aprire gestione SQL Server Enterprise.
- Creare un account di accesso SQL Server per NT AUTHORITY\Network Service.
- Concedere all'account di accesso l'accesso al database Aspnetdb creando un utente del database.
- Aggiungere l'utente del database al ruolo del database aspnet_Membership_FullAccess.
Configurare ASP.NET per l'appartenenza FTP
I passaggi seguenti descrivono il processo di configurazione di ASP.NET per consentire l'autenticazione di appartenenza per l'accesso FTP.
Usando un editor di testo, ad esempio Il Blocco note di Windows, aprire il file radice web.config, che deve trovarsi nel percorso appropriato per la versione del framework in uso:
Framework a 32 bit:
"%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config"
Framework a 64 bit:
"%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\CONFIG\web.config"
Scorrere fino alla fine e incollare il codice seguente prima del tag /configuration> di chiusura<:
<location path="GlobalFtpSite/ftpsvc"> <connectionStrings> <add connectionString="Server=localhost;Database=aspnetdb;Integrated Security=true" name="FtpLocalSQLServer" /> </connectionStrings> <system.web> <membership defaultProvider="FtpSqlMembershipProvider"> <providers> <add name="FtpSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="FtpLocalSQLServer" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Clear" /> </providers> </membership> <roleManager defaultProvider="FtpSqlRoleProvider" enabled="true"> <providers> <add name="FtpSqlRoleProvider" type="System.Web.Security.SqlRoleProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="FtpLocalSQLServer" applicationName="/" /> </providers> </roleManager> </system.web> </location>
Salvare e chiudere il file di web.config radice.
Riepilogo
Sono state configurate ASP.NET per l'autenticazione dell'appartenenza. Per riepilogare gli elementi completati in questa sezione, il server è stato configurato da:
- Configurazione dell'SQL Server locale per l'appartenenza a ASP.NET
- Configurazione di ASP.NET per l'appartenenza FTP
Configurazione dell'autenticazione di appartenenza FTP
In questa sezione viene descritto come configurare un database di appartenenza usando il sito Web predefinito usato per la creazione di utenti che verranno usati in seguito dall'autenticazione di appartenenza basata su FTP. A tale scopo, seguire questa procedura:
Passaggi dei prerequisiti
- Aprire Gestione Internet Information Services (IIS).
- Espandere il computer nel nodo superiore dell'albero Connessioni .
- Espandere il nodo Siti nell'albero.
Configurazione delle impostazioni di appartenenza a .NET
Passaggio 1: Aggiungere una stringa di connessione
Evidenziare il sito Web predefinito nell'albero e fare doppio clic su Stringhe di connessione, quindi seguire questa procedura:
Fare clic su Aggiungi nel riquadro Azioni .
Configurare le opzioni seguenti:
- Nome: "FtpLocalSQLServer"
- Server: "localhost"
- Database: "aspnetdb"
Fare clic su OK.
Passaggio 2: Aggiungere un provider di ruoli
Evidenziare il sito Web predefinito nell'albero e fare doppio clic su Provider, quindi seguire questa procedura:
Scegliere Ruoli .NET dall'elenco a discesa.
Fare clic su Aggiungi... nel riquadro Azioni .
Scegliere SqlRoleProvider dall'elenco a discesa.
Configurare le opzioni seguenti:
- Nome: "FtpSqlRoleProvider"
- Nome stringa di connessione: "FtpLocalSQLServer"
- Nome applicazione: "/"
Fare clic su OK.
Passaggio 3: Aggiungere un provider di appartenenza
Evidenziare il sito Web predefinito nell'albero e fare doppio clic su Provider, quindi seguire questa procedura:
Scegliere Utenti .NET dall'elenco a discesa.
Fare clic su Aggiungi... nel riquadro Azioni .
Scegliere SqlMembershipProvider dall'elenco a discesa.
Configurare le opzioni seguenti:
- Nome: "FtpSqlMembershipProvider"
- Nome stringa di connessione: "FtpLocalSQLServer"
- Nome applicazione: "/"
Fare clic su OK.
Passaggio 4: Aggiungere un ruolo per l'appartenenza FTP
Evidenziare il sito Web predefinito nell'albero e fare doppio clic su Ruoli .NET, quindi seguire questa procedura:
È possibile che venga visualizzata una finestra di dialogo di errore relativa alla connessione. In tal caso, fare clic su OK per chiudere la finestra di dialogo di errore, quindi configurare il provider predefinito usando la procedura seguente:
- Fare clic su Imposta provider predefinito... nel riquadro Azioni .
- Scegliere FtpSqlRoleProvider dall'elenco a discesa.
- Fare clic su OK.
Fare clic su Aggiungi... nel riquadro Azioni.
Configurare le opzioni seguenti:
- Nome: "ftprole"
Fare clic su OK.
Passaggio 5: Aggiungere un account utente per l'appartenenza FTP
Evidenziare il sito Web predefinito nell'albero e fare doppio clic su Utenti .NET, quindi seguire questa procedura:
È possibile che venga visualizzata una finestra di dialogo di errore relativa alla connessione. In tal caso, fare clic su OK per chiudere la finestra di dialogo di errore, quindi configurare il provider predefinito usando la procedura seguente:
- Fare clic su Imposta provider predefinito... nel riquadro Azioni .
- Scegliere FtpSqlMembershipProvider dall'elenco a discesa.
- Fare clic su OK.
Fare clic su Aggiungi nel riquadro Azioni.
Configurare le opzioni seguenti:
- Nome utente: "ftpuser"
- Email: "ftpuser@localhost.local"
- Password: "P@ssw0rd"
Fare clic su Avanti.
Aggiungere l'utente a "ftprole", quindi fare clic su Fine.
Abilitazione dell'autenticazione di appartenenza per FTP
Configurare FTP per l'autenticazione di appartenenza
Evidenziare il sito Web predefinito nell'albero e fare doppio clic su Autenticazione FTP, quindi seguire questa procedura:
- Fare clic su Provider personalizzati... nel riquadro Azioni .
- Selezionare la casella per AspNetAuth.
- Fare clic su OK.
È ora possibile autorizzare l'utente FTP usando uno dei due metodi seguenti:
Metodo 1: Configurare una regola di autorizzazione FTP per un ruolo di appartenenza
Evidenziare il sito Web predefinito nell'albero e fare doppio clic su Regole di autorizzazione FTP, quindi seguire questa procedura:
- Fare clic su Aggiungi regola consenti nel riquadro Azioni .
- Selezionare Ruoli specificati o gruppi di utenti per l'opzione di accesso.
- Digitare "ftprole" per il nome del ruolo.
- Selezionare Lettura e scrittura per l'opzione Autorizzazioni .
- Fare clic su OK.
Metodo 2: Configurare una regola di autorizzazione FTP per un utente di appartenenza
Evidenziare il sito Web predefinito nell'albero e fare doppio clic su Regole di autorizzazione FTP, quindi seguire questa procedura:
- Fare clic su Aggiungi regola consenti nel riquadro Azioni .
- Selezionare Utenti specificati per l'opzione di accesso.
- Digitare "ftpuser" per il nome utente.
- Selezionare Lettura e scrittura per l'opzione Autorizzazioni .
- Fare clic su OK.
Riepilogo
Per riepilogare gli elementi completati in questa sezione, è stato configurato il server in base a:
Configurazione delle impostazioni di appartenenza .NET:
- Aggiunta di una stringa di connessione
- Aggiunta di un provider di ruoli
- Aggiunta di un provider di appartenenza
- Aggiungere un ruolo per l'appartenenza FTP
- Aggiunta di un account utente per l'appartenenza FTP
Abilitazione dell'autenticazione di appartenenza per FTP:
- Configurazione dell'autenticazione FTP per l'appartenenza
- Configurazione di una regola di autorizzazione FTP per un utente di appartenenza
- Configurazione di una regola di autorizzazione FTP per un ruolo di appartenenza
Risoluzione dei problemi
Se si usano ruoli di appartenenza, potrebbe essere necessario installare l'hotfix descritto nell'articolo di Microsoft Knowledge Base seguente:
https://support.microsoft.com/kb/955136/
Quando si tenta di accedere, viene visualizzata la risposta seguente:
530-User cannot log in.
Win32 error:
Error details: .Net SqlClient Data Provider: An error has occurred while establishing a connection to the server.
When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server
does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
530 End
Login failed.
Questo errore viene causato quando non è stato configurato il server SQL per accettare connessioni remote.