Implementazione della sicurezza basata su ruoli con l'autenticazione basata su form in un'applicazione ASP.NET con Visual C# .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 311495 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato precedentemente pubblicato con il codice di riferimento I311495
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene illustrato come implementare la sicurezza basata su ruoli in un'applicazione ASP.NET che implementa l'autenticazione basata su form utilizzando Visual C# .NET


Requisiti

Questo articolo presume che sia già stata implementata l'autenticazione basata su form in un'applicazione ASP.NET.
301240 HOW TO: Implementare l'autenticazione basata su form in un'applicazione ASP .NET con C# .NET

Assegnazione di ruoli all'utente autenticante

Poiché gli utenti Web Form non sono generalmente utenti Microsoft Windows, non sono associati a ruoli in base all'impostazione predefinita. È pertanto necessario assegnare i ruoli dell'utente autenticante a tale identità di utente in modo che possa implementare la protezione basata su ruoli nel codice.

Per implementare la protezione basata su ruoli nell'applicazione, utilizzare il codice di esempio riportato in questa sezione. In questo codice di esempio all'utente autenticante vengono assegnati ruoli predefiniti. In base alla modalità con cui vengono archiviati i dati utente, è possibile implementare un proprio metodo per recuperare i ruoli dell'utente autenticato e assegnare tali ruoli all'identità dell'utente autenticante, come illustrato nel codice di esempio seguente.

Copiare il codice seguente nel file Global.asax dell'applicazione per assegnare i ruoli all'utente autenticante nel gestore eventi Application_AuthenticateRequest:
public void Application_AuthenticateRequest( Object src , EventArgs e )
{
   if (!(HttpContext.Current.User == null))
   {
      if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" )
      {
      System.Web.Security.FormsIdentity id;
      id = (System.Web.Security.FormsIdentity)HttpContext.Current.User.Identity;
      String[] myRoles = new String[2];
      myRoles[0] = "Manager";
      myRoles[1] = "Admin";
      HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
      }
   }
}
				

Verificare i ruoli utente e implementare la logica di programmazione nelle pagine ASPX

La procedura seguente dimostra come implementare e controllare la logica di programmazione basata sui ruoli ai quali appartiene l'utente autenticante.
  1. Creare una nuova pagina aspx denominata Sample.aspx e incollarvi il codice riportato di seguito:
    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Web" %>
    
      <script runat=server>
        public void Page_Load() {
    	if (User.IsInRole("Admin")){
    		Response.Write ("You are an Administrator");}
    	else {
    		Response.Write ("You do not have any role assigned");}
        }
    
      </script>
    					
  2. Salvare Sample.aspx nell'applicazione esistente. Visualizzare la pagina per verificarne il corretto funzionamento.

Riferimenti

Per ulteriori informazioni sulle funzioni di protezione di ASP.NET, fare clic sul numero dell'articolo della Knowledge Base riportato di seguito:
306590 INFO: Cenni preliminari sulla protezione ASP.NET
Per ulteriori informazioni sulla protezione basata su ruoli, vedere i seguenti argomenti della documentazione di .NET Framework Software Development Kit (SDK) (informazioni in lingua inglese):
Role-Based Security
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconrole-basedsecurity.asp
Ulteriori informazioni sulla protezione basata su ruoli sono contenute nella documentazione e nel codice sorgente disponibile nel seguente sito Web IBuySpy Developer Solutions (informazioni in lingua inglese):
IBuySpy Developer Solutions
http://www.ibuyspy.com
Microsoft fornisce informazioni su come contattare altri produttori allo scopo di facilitare l'individuazione del supporto tecnico. Queste informazioni sono soggette a modifica senza preavviso. Microsoft non si assume alcuna responsabilità sull'accuratezza delle informazioni relative al contatto con altri produttori.

Proprietà

Identificativo articolo: 311495 - Ultima modifica: martedì 16 agosto 2005 - Revisione: 3.8
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
Chiavi: 
kbhowtomaster kbsecurity KB311495
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