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

Per la versione di questo articolo relativa a Microsoft Visual Basic .NET, vedere
306238 .

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

CONTENUTO DELL'ATTIVITÀ

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

Torna all'inizio

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
Torna all'inizio

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);
}
}
}
Torna all'inizio

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.
Torna all'inizio

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): 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.

Torna all'inizio
Proprietà

ID articolo: 311495 - Ultima revisione: 21 mag 2009 - Revisione: 1

Feedback