INFORMAZIONI: Cenni preliminari sulla protezione ASP.NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 306590 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato precedentemente pubblicato con il codice di riferimento I306590
In questo articolo si intende la seguente .net Microsoft Spazi dei nomi Framework Class Library:
  • System.Web.Security
  • System.Web.Principal
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene fornita un'introduzione a ASP.NET protezione.

Per ulteriori ASP.NET panoramiche, fare riferimento al seguente Articolo della Microsoft Knowledge Base:
305140 INFO: Roadmap ASP.NET

Informazioni

ASP.NET offre un maggiore controllo per implementare la protezione per l'applicazione. ASP.NET protezione funziona in combinazione con Microsoft Internet Information Services Protezione (IIS) e include servizi di autenticazione e autorizzazione per implementare il modello di protezione ASP.NET. ASP.NET include inoltre basato sui ruoli funzionalitÓ di protezione che Ŕ possibile implementare per Microsoft Windows e account utente non Windows.

In questo articolo Ŕ suddiviso in quanto segue sezioni:

Flusso di protezione con una richiesta

La procedura seguente illustra la sequenza di eventi quando un client effettua una richiesta:
  1. Un client richiede una pagina aspx che risiede in IIS Server.
  2. Le credenziali del client vengono passate a IIS.
  3. IIS autentica il client e inoltra l'autenticato token con la richiesta del client al processo di lavoro ASP.NET.
  4. In base al token autenticato da IIS e il impostazioni di configurazione dell'applicazione Web, ASP.NET decide se rappresentare un utente sul thread che sta elaborando la richiesta. In una distinta differenza tra Microsoft pagine ASP (ASP) e ASP.NET, ASP.NET no pi¨ rappresenta l'utente autenticato per impostazione predefinita. Per abilitare la rappresentazione, Ŕ necessario impostare l'attributo impersonate della sezione identitÓ nel file Web. config su true.
Per ulteriori informazioni sul flusso di protezione, consultare la argomento riportato di seguito nel Software Development Kit (SDK) di.NET Framework documentazione:
Flusso di dati ASP.NET
aspx http://msdn.microsoft.com/en-us/library/xa68twcb (vs.71)
Per ulteriori informazioni su rappresentazione in ASP.NET, fare clic sul numero riportato di seguito per visualizzare l'articolo in della Microsoft Knowledge Base:
306158 INFO: Implementazione della rappresentazione in un'applicazione di ASP.NET

Impostazioni di configurazione correlate

IIS gestisce impostazioni di configurazione relative alla protezione di IIS metabase. Tuttavia, ASP.NET gestisce la protezione (e altre) configurazione impostazioni nei file di configurazione di Extensible Markup Language (XML). Sebbene questo in genere semplifica la distribuzione dell'applicazione da una protezione punto di vista, il modello di protezione che adotta l'applicazione richiede la corretta configurazione della metabase di IIS e l'applicazione ASP.NET tramite il file di configurazione (Web. config).

Di seguito le sezioni di configurazione relative alla protezione ASP.NET:

Autenticazione

L'autenticazione Ŕ il processo mediante il quale Ŕ possibile ottenere identificazione credenziali quali nome e la password dell'utente e convalidare tali credenziali rispetto a un'autoritÓ.

ASP.NET fornisce l'autenticazione quattro provider:

Autenticazione basata su form

Autenticazione basata su form si riferisce a un sistema in cui non autenticati le richieste vengono reindirizzate a un modulo Hypertext Markup Language (HTML) in cui gli utenti digitano le proprie credenziali. Dopo che l'utente fornisce le credenziali e invia il modulo, l'applicazione autentica la richiesta e i problemi di sistema un ticket di autorizzazione sotto forma di un cookie. Questo cookie contiene il credenziali o una chiave per riacquisire l'identitÓ. Le richieste successive dal browser includeranno automaticamente il cookie.

Per ulteriori informazioni su Autenticazione basata su form, vedere l'argomento riportato di seguito nel SDK di.NET Framework documentazione:
Il Provider di autenticazione form
aspx http://msdn.microsoft.com/en-us/library/907hb5w9 (vs.71)
Per autenticazione basata su form informazioni aggiuntive in ASP.NET, fare clic sull'articolo sul numero dell'articolo della Microsoft Knowledge Base:
301240 PROCEDURA: Implementare basata su moduli di autenticazione dell'applicazione ASP.NET utilizzando C#.

Autenticazione di Windows

L'autenticazione di Windows, IIS esegue l'autenticazione, e il token autenticato viene inoltrato al processo di lavoro ASP.NET. Il vantaggio dell'utilizzo di Windows l'autenticazione Ŕ che richiede una codifica minima. ╚ possibile utilizzare Windows autenticazione per rappresentare l'account utente Windows autenticato da IIS prima di inviare la richiesta a ASP.NET.

Per ulteriori informazioni sull'autenticazione di Windows, vedere il seguente argomento della .net Documentazione:
Il Provider WindowsAuthenticationModule
aspx http://msdn.microsoft.com/en-us/library/907hb5w9 (vs.71)

Autenticazione Passport

L'autenticazione Passport Ŕ un servizio di autenticazione centralizzata fornito da Microsoft che offre servizi di profilo di una singola connessione e core per i siti membri. In genere, viene utilizzata l'autenticazione Passport quando necessario accesso singolo di funzionalitÓ di pi¨ domini.

Per ulteriori informazioni informazioni sull'autenticazione Passport, fare riferimento al seguente argomento della .NET Framework inglese:
Il Provider di autenticazione Passport
aspx http://msdn.microsoft.com/en-us/library/f8e50t0f (vs.71)

Autenticazione predefinita

L'autenticazione predefinita viene utilizzato quando non si desidera un livello di protezione un'applicazione Web; l'accesso anonimo Ŕ necessaria per la protezione provider. Tra tutti i provider di autenticazione, fornisce l'autenticazione predefinita massime prestazioni dell'applicazione. Questo provider di autenticazione Ŕ anche utilizzato quando si utilizza un modulo di protezione personalizzato.

Autorizzazione

L'autorizzazione Ŕ il processo che verifica se l'autenticazione utente pu˛ accedere alle risorse richieste.

ASP.NET offre la provider di autorizzazione seguenti:

FileAuthorization

La classe FileAuthorizationModule esegue l'autorizzazione file ed Ŕ attiva quando si utilizza Autenticazione di Windows. FileAuthorizationModule Ŕ responsabile dell'esecuzione dei controlli sul controllo di accesso di Windows Elenchi (ACL) per determinare se un utente deve disporre dell'accesso.

UrlAuthorization

La classe UrlAuthorizationModule esegue l'autorizzazione di Uniform Resource Locator (URL), che controlla l'autorizzazione basata sullo spazio dei nomi URI. Spazi dei nomi URI pu˛ essere piuttosto diverso dai percorsi di cartelle e i file fisici che le autorizzazioni NTFS utilizzare.

UrlAuthorizationModule implementa asserzioni sia autorizzazione positivi e negativi; Ŕ possibile utilizzare il modulo in modo selettivo consentire o negare l'accesso a parti arbitrarie dello spazio dei nomi URI per gli utenti, ruoli (ad esempio manager, i tester e gli amministratori) e verbi (ad esempio GET e POST).

Per ulteriori informazioni sull'autorizzazione in ASP.NET, vedere il seguente argomento nella documentazione SDK.NET Framework:
Autorizzazione ASP.NET
aspx http://msdn.microsoft.com/en-us/library/wce3kxhd (vs.71)

Protezione basata sui ruoli

Protezione basata sui ruoli in ASP.NET Ŕ simile a basato sui ruoli protezione utilizzare Microsoft COM+ e Microsoft Transaction Server (MTS), anche se esistono importanti differenze. Non Ŕ basata sui ruoli protezione in ASP.NET limitato a gruppi e account di Windows. Ad esempio, se l'autenticazione di Windows e la rappresentazione Ŕ attivata, l'identitÓ dell'utente Ŕ un'identitÓ Windows (User.Identity.Name = "Dominio\nomeutente"). ╚ possibile verificare l'identitÓ per l'appartenenza a ruoli specifici e limitare l'accesso di conseguenza. Per esempio:

Codice di Visual Basic.
If User.IsInRole("BUILTIN\Administrators") Then
   Response.Write("You are an Admin")
Else If User.IsInRole("BUILTIN\Users") then
   Response.Write("You are a User")
Else
   Response.Write("Invalid user")
End if
				
Codice di Visual C#.
if ( User.IsInRole("BUILTIN\\Administrators"))
   Response.Write("You are an Admin");
else if (User.IsInRole("BUILTIN\\Users"))
   Response.Write("You are a User");
else
   Response.Write("Invalid user");
				
Se si utilizza l'autenticazione dei form, i ruoli non vengono assegnati per il utente autenticato; Ŕ necessario farlo a livello di programmazione. Per assegnare i ruoli per la autenticazione utente, utilizzare l'evento OnAuthenticate del modulo di autenticazione (che Ŕ il form modulo di autenticazione in questo esempio) per creare un nuovo oggetto GenericPrincipal e assegnarlo alla proprietÓ utente di HttpContext. Il seguente codice illustra questo:

Codice di Visual Basic.
Public Sub Application_AuthenticateRequest(s As Object, e As EventArgs)
   If (Not(HttpContext.Current.User Is Nothing)) Then
      If HttpContext.Current.User.Identity.AuthenticationType = "Forms" Then
         Dim id as System.Web.Security.FormsIdentity = HttpContext.Current.User.Identity
         Dim myRoles(3) As String
         myRoles(0)= "managers"
         myRoles(1)= "testers"
         myRoles(2)= "developers"
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles) 
      End If
   End If
End Sub
				
Codice di Visual C#.
public void Application_AuthenticateRequest(Object s, EventArgs e)      
{
   if (HttpContext.Current.User != null)
   {
      if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" ) 
      {
         System.Web.Security.FormsIdentity id = HttpContext.Current.User.Identity;
         String[] myRoles = new String[3];
         myRoles[0]= "managers";
         myRoles[1]= "testers";
         myRoles[2]= "developers";
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
      }
   }
} 
				
Per verificare se l'utente Ŕ un ruolo specifico e limitare l'accesso di conseguenza, utilizzare il codice seguente (o simile) nelle pagine aspx:

Codice di Visual Basic.
If User.IsInRole("managers") Then
   Response.Write("You are a Manager")
Else If  User.IsInRole("testers") Then
   Response.Write("You are a Tester")
Else If User.IsInRole("developers") Then
   Response.Write("You are a Developer")
End if
				
Codice di Visual C#.
if (User.IsInRole("managers"))
   Response.Write("You are a Manager");
else if (User.IsInRole("testers"))
   Response.Write("You are a Tester");
else if (User.IsInRole("developers"))
   Response.Write("You are a Developer");
				
Per ulteriori informazioni, fare clic sull'articolo sul numero dell'articolo della Microsoft Knowledge Base:
306238 PROCEDURA: Implementare basata sul ruolo di protezione con l'autenticazione basata su form nell'applicazione ASP.NET mediante Visual Basic .net
Per ulteriori informazioni sulla protezione basata sui ruoli, vedere il seguente argomento nella documentazione SDK.NET Framework:
Protezione basata sui ruoli
aspx http://msdn.microsoft.com/en-us/library/52kd59t0 (vs.71)

Riferimenti

Per informazioni sulle indicazioni ASP.NET di protezione, vedere la white paper MSDN riportato di seguito:
L'autenticazione in ASP.NET: Guida alla protezione di .net
http://msdn.microsoft.com/en-us/library/ms978378.aspx
Per ulteriori informazioni generali su ASP.NET, consultare il newsgroup MSDN riportato di seguito:
Microsoft.public.dotnet.Framework.Aspnet
Per ulteriori informazioni, fare clic sull'articolo sui numeri degli articoli della Microsoft Knowledge Base:
311094 BUG: Messaggio di errore "ConfigurationException" rappresentato lettura configurazione di account
306359 PRB: Stringa vuota restituisce Request.ServerVariables("LOGON_USER") in ASP.NET
313091 PROCEDURA: Creare chiavi tramite Visual Basic .net utilizzato nell'autenticazione basata su form
313116 PRB: Le richieste di autenticazione form non sono possibile passare alla pagina loginUrl
Per ulteriori informazioni, vedere i seguenti manuali:
Reilly, J. Douglas Progettazione di applicazioni di Microsoft ASP.NET. Microsoft Press, 2001.

Esposito Dino.Creazione di soluzioni Web con ASP.NET e ADO.NET. Microsoft Press, 2001.

ProprietÓ

Identificativo articolo: 306590 - Ultima modifica: giovedý 28 giugno 2012 - Revisione: 1.0
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Chiavi:á
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 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: 306590
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