Al momento sei offline in attesa che la connessione Internet venga ristabilita

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

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

Questo articolo si riferisce ai seguenti spazi dei nomi delle librerie di classi di Microsoft .NET Framework:
  • System.Security

Contenuto dell'attività

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 StringDim aspUserName As StringauthUserName = User.Identity.NameaspUserName = Principal.WindowsIdentity.GetCurrent.NameauthUserPrincipalLabel.Text = "You are: " & authUserNameaspPrincipalLabel.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):

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:
Rappresentazione protezione applicazione Web di ASP.NET

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 315736 - Ultima revisione: 12/03/2007 19:53:49 - Revisione: 3.11

Microsoft ASP.NET 1.0, Microsoft Internet Information Services 5.0, Microsoft ASP.NET 1.1, Microsoft Internet Information Services 6.0

  • kbmt kbconfig kbhowtomaster kbinfo kbsecurity kbweb KB315736 KbMtit
Feedback