Come proteggere un'applicazione ASP.NET utilizzando la protezione di Windows

Traduzione articoli Traduzione articoli
Identificativo articolo: 315736 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

ASP.NET puō essere utilizzato per autenticare gli utenti Web in base alle relative credenziali dell'account utente Microsoft Windows 2000 o Windows Server 2003 con Microsoft Internet Information Services (IIS). Il motore di esecuzione ASP.NET č possibile configurare per rappresentare gli utenti Web o per utilizzare la propria identitā Windows quando si accede a risorse quali database o file.


Requisiti

Sono necessari il seguente hardware, software e infrastruttura di rete per eseguire le procedure descritte in questo articolo:
  • Windows 2000 Server Service Pack 2
  • IIS 5.0 (informazioni in lingua inglese)
  • Windows Server 2003 con IIS 6.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio .NET
Č inoltre necessario esperienza con le seguenti operazioni:
  • Sviluppo di ASP.NET con Visual Basic .NET
  • Amministrazione di IIS
  • Amministrazione di account utente di Windows 2000

Come sviluppare il sito Web

In questa procedura si creerā un Web di ASP.NET semplice applicazione, che verrā protetto utilizzando l'autenticazione di Windows.
  1. Avviare Visual Studio .NET e creare una nuova applicazione di Visual Basic ASP.NET Web denominata "WindowsSite."
  2. Trascinare un controllo etichetta dalla casella degli strumenti nel form Web WebForm1.aspx e quindi impostarne la proprietā ID per authUserPrincipalLabel .
  3. Trascinare un secondo controllo etichetta dalla casella degli strumenti nel form Web WebForm1.aspx e quindi impostarne la proprietā ID per aspPrincipalLabel .
  4. Fare doppio clic su WebForm1.aspx per visualizzare la finestra del codice e quindi aggiungere la seguente istruzione Imports sopra la dichiarazione di classe:
    Imports System.Security
    						
    aggiungere il codice riportato di seguito la routine di evento Page_Load:
    Dim authUserName As String
    Dim aspUserName As String
    authUserName = User.Identity.Name
    aspUserName = Principal.WindowsIdentity.GetCurrent.Name
    authUserPrincipalLabel.Text = "You are: " & authUserName
    aspPrincipalLabel.Text = "This page runs as: " & aspUserName
    					
  5. Visualizzare il file Web.config del progetto e quindi individuare l'elemento authentication. Verificare che l'attributo mode sia un valore di Windows .
  6. Creare e salvare il progetto.
  7. Eseguire il progetto e quindi verificare che la pagina viene visualizzata con il seguente messaggio:
    • In Windows 2000
      Si č:
      Questa pagina viene eseguito come: DomainOrServer \ASPNET
    • In Windows Server 2003
      Si č:
      Questa pagina viene eseguito come: DomainOrServer \NETWORK SERVICE
    Nota Il nome utente non viene visualizzato perché si č stati autenticati non da IIS; l'accesso anonimo č ancora abilitato.
  8. Chiudere Internet Explorer per interrompere il progetto.

Come disattivare l'accesso anonimo

In questa procedura č verrā configurare IIS per richiedere l'autenticazione integrata di Windows per il sito WindowsSite.
  1. Ridurre al minimo Visual Studio e quindi avviare Internet Services Manager dal gruppo di programmi Strumenti di amministrazione.
  2. Espandere il server e il sito Web predefinito, fare clic con il pulsante destro del mouse sul WindowsSite sito e quindi scegliere Proprietā .
  3. Nella scheda Protezione Directory nella finestra di dialogo Proprietā WindowsSite , fare clic sul pulsante Modifica nella sezione "Controllo e accesso anonimo l'autenticazione".
  4. Fare clic per deselezionare la casella di controllo accesso anonimo , verificare che sia selezionata la casella di controllo autenticazione integrata di Windows e quindi fare clic su OK .
  5. Fare clic su OK per chiudere la finestra di dialogo Proprietā WindowsSite .
  6. Tornare a Visual Studio ed eseguire il progetto. Verificare che la pagina viene visualizzata con il seguente messaggio:
    • In Windows 2000
      Si č: Your Windows user name
      Questa pagina viene eseguito come: DomainOrServer \ASPNET
    • In Windows Server 2003
      Si č: Your Windows user name
      Questa pagina viene eseguito come: DomainOrServer \NETWORK SERVICE
    Nota Si č stati autenticati tramite l'account di Windows. Se si č non stata connessi a Windows, č sarebbe stato richiesto per Windows in un nome utente e la password.
  7. Chiudere Internet Explorer per interrompere il progetto.

Autorizzazione

In ASP.NET, č possibile consentire l'autorizzazione per l'applicazione quando le impostazioni aggiuntive č rendere disponibili all'interno di Web.config file. Č possibile consentire a utenti specifici o determinato gruppi l'accesso a queste impostazioni aggiuntive. I seguenti esempi descrivono questa funzionalitā. Per consentire l'accesso a tutti gli utenti trovati nel gruppo di Windows NT viene chiamato "Manager", utilizzare il seguente codice:
<configuration>
     <system.web>
       <authorization>
         <allow roles="domainname\Managers" />
         <deny users="*" />
       </authorization>
     </system.web>
   </configuration>
				
per consentire l'accesso soltanto a determinati utenti, utilizzare il seguente codice:
<configuration>
     <system.web>
       <authorization>
         <allow users="domainname\user1,domainname\user2,domainname\user3" />
         <deny users="*" />
       </authorization>
     </system.web>
   </configuration>
				
Nota Č possibile fare riferimento pių ruoli o gli utenti quando si utilizza un elenco delimitato da virgole.


Come attivare la rappresentazione

In questa procedura, verrā configurato l'applicazione WindowsSite per rappresentare l'utente di Windows che accede a tale.
  1. In Visual Studio, č necessario visualizzare il file Web.config per il progetto di WindowsSite.
  2. Aggiungere il seguente elemento dopo l'elemento di authentication:
    <identity impersonate = "true" />
    					
  3. Salvare Web.config.
  4. Eseguire il progetto. Verificare che la pagina viene visualizzata con il seguente messaggio (si noti che il motore di esecuzione ASP.NET utilizzerā le credenziali di Windows per accedere alle risorse per conto dell'utente):
    Si č: Your Windows user name
    Questa pagina viene eseguito come: Your Windows user name
  5. Chiudere Internet Explorer per interrompere il progetto.

Come assegnare un Principal personalizzate

In questa procedura, si verrā configurare l'applicazione di WindowsSite per l'utilizzo un'identitā di protezione personalizzato:
  1. Avvia la funzione di Gestione Computer dal gruppo di programmi Strumenti di amministrazione. Creare un nuovo account di utente di Windows 2000 denominato "WindowsSite", con una password "password" (se il server č un controller di dominio e quindi utilizzare lo strumento Active Directory Users and Computers).
  2. Le autorizzazioni descritte nel seguente articolo Knowledge Base č necessario fare clic per deselezionare il Cambiamento obbligatorio password all'accesso successivo casella di controllo. Nota l'oggetto principal personalizzato che č possibile selezionare:
    317012INFORMAZIONI: Processo e identitā di richiesta in ASP.NET
  3. Quando l'account WindowsSite č stato creato, quindi chiudere lo strumento di amministrazione utilizzato per crearlo.
  4. In Visual Studio, č necessario visualizzare il file Web.config per il progetto di WindowsSite.
  5. Modificare l'elemento identity come segue:
    identity impersonate = "true"
           userName = "DomainOrServerName\WindowsSite"
           password = "password"/>
    
    DomainOrServerName dove č il nome del Windows 2000 o di un dominio di Windows Server 2003 (in un ambiente di dominio) o di computer (in un ambiente di gruppo di lavoro).
  6. Salvare Web.config.
  7. Eseguire il progetto. Verificare che la pagina viene visualizzata con il seguente messaggio:
    Si č: Your Windows user name
    Questa pagina viene eseguito come: DomainOrServerName \WindowsSite
    Nota Aspnet_wp.exe utilizzerā le credenziali di Windows specificata per accedere alle risorse per conto dell'utente.
  8. Chiudere Internet Explorer per interrompere il progetto.
Nota L'identitā del processo che rappresenta un utente specifico in un thread deve disporre del privilegio Agisci come parte del sistema operativo .
  • In Windows 2000, per impostazione predefinita, il processo Aspnet_wp.exe viene eseguito con un account di computer č denominato ASPNET.
  • In Windows Server 2003, per impostazione predefinita, il processo Aspnet_wp.exe viene eseguito con un account di computer č denominato servizio di rete. Tuttavia, questo account non dispone dei privilegi corretti per rappresentare un utente specifico. Per questa ragione se su tenta di rappresentare un utente specifico verrā visualizzato un messaggio di errore.
Per ovviare al problema, utilizzare uno dei metodi descritti di seguito:
  • Concedere l' Agisci come parte del sistema operativo privilegio all'account ASPNET (l'account con privilegiato minimi).

    Nota Sebbene sia possibile utilizzare questo metodo per aggirare il problema, questo metodo non č consigliabile.
  • Modificare l'account di cui viene eseguito il processo Aspnet_wp.exe all'account di sistema nella sezione di configurazione <processmodel> del file Machine.config.
Per ulteriori informazioni sul processo di ASPNET, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/aa291339(VS.71).aspx

Risoluzione dei problemi

Protezione di Windows in un sito Web ASP.NET ulteriormente migliorata (e complesso) utilizzando autorizzazioni file NTFS. Se l'account di Windows non dispone di autorizzazioni leggere una pagina ASP.NET Web, IIS verrā chiesto di credenziali alternative di Windows. Allo stesso modo, se una pagina ASP.NET tenta di accedere a un file che l'identitā di protezione utilizzati dal motore di esecuzione di ASP.NET non dispone di accesso a, verrā chiesto di credenziali alternative. NTFS autorizzazioni rappresentano un metodo efficace per controllare l'accesso a sezioni di un sito Web.

Riferimenti

Per ulteriori informazioni sull'utilizzo di autenticazione di Windows in un sito Web ASP.NET, vedere l'argomento di "Protezione" di applicazione Web ASP.NET nella documentazione di .NET Framework.

Vedere anche l'articolo "Authentication in ASP.NET: .NET Guida protezione alla" sul seguente sito Web MSDN:
http://msdn2.microsoft.com/en-us/library/ms978378.aspx

Proprietā

Identificativo articolo: 315736 - Ultima modifica: lunedė 3 dicembre 2007 - Revisione: 3.11
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 1.0
  • Microsoft Internet Information Services 5.0
  • Microsoft ASP.NET 1.1
  • Microsoft Internet Information Services 6.0
Chiavi: 
kbmt kbconfig kbhowtomaster kbinfo kbsecurity kbweb KB315736 KbMtit
Traduzione automatica articoli
Il presente articolo č stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non č sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pių o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non č la sua. Microsoft non č responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 315736
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com