Procedura: Trasformare le attestazioni in ingressoHow To: Transform Incoming Claims

Si applica aApplies To

  • Microsoft® Windows® Identity Foundation (WIF)Microsoft® Windows® Identity Foundation (WIF)

  • Web Form ASP.NET®ASP.NET® Web Forms

RiepilogoSummary

Questo argomento include le procedure dettagliate per creare una semplice applicazione Web Form ASP.NET in grado di riconoscere attestazioni e trasformare le attestazioni in ingresso.This How-To provides detailed step-by-step procedures for creating a simple claims-aware ASP.NET Web Forms application and transforming incoming claims. Sono inoltre disponibili istruzioni su come testare l'applicazione per verificare che le attestazioni trasformate vengano presentate quando l'applicazione viene eseguita.It also provides instructions for how to test the application to verify that transformed claims are presented when the application is run.

SommarioContents

  • ObiettiviObjectives

  • PanoramicaOverview

  • Riepilogo dei passaggiSummary of Steps

  • Passaggio 1: creare una semplice applicazione Web Form ASP.NETStep 1 – Create a Simple ASP.NET Web Forms Application

  • Passaggio 2: implementare la trasformazione delle attestazioni con un ClaimsAuthenticationManager personalizzatoStep 2 – Implement Claims Transformation Using a Custom ClaimsAuthenticationManager

  • Passaggio 3: eseguire i test sulla soluzioneStep 3 – Test Your Solution

ObiettiviObjectives

  • Configurare un'applicazione Web Form ASP.NET per l'autenticazione basata su attestazioniConfigure an ASP.NET Web Forms application for claims-based authentication

  • Trasformare le attestazioni in ingresso tramite l'aggiunta di un'attestazione per il ruolo di amministratoreTransform incoming claims by adding an Administrator role claim

  • Testare l'applicazione Web Form ASP.NET per verificare se funziona correttamenteTest the ASP.NET Web Forms application to see if it is working properly

PanoramicaOverview

WIF espone una classe denominata ClaimsAuthenticationManager che consente agli utenti di modificare le attestazioni prima che vengano presentate a un'applicazione relying party.WIF exposes a class named ClaimsAuthenticationManager that enables users to modify claims before they are presented to a relying party (RP) application. La classe ClaimsAuthenticationManager è utile per la separazione dei compiti tra l'autenticazione e il codice dell'applicazione sottostante.The ClaimsAuthenticationManager is useful for separation of concerns between authentication and the underlying application code. L'esempio seguente dimostra come aggiungere un ruolo alle attestazioni nel ClaimsPrincipal in ingresso che potrebbe essere richiesto dalla relying party.The example below demonstrates how to add a role to the claims in the incoming ClaimsPrincipal that may be required by the RP.

Riepilogo dei passaggiSummary of Steps

  • Passaggio 1: creare una semplice applicazione Web Form ASP.NETStep 1 – Create a Simple ASP.NET Web Forms Application

  • Passaggio 2: implementare la trasformazione delle attestazioni con un ClaimsAuthenticationManager personalizzatoStep 2 – Implement Claims Transformation Using a Custom ClaimsAuthenticationManager

  • Passaggio 3: eseguire i test sulla soluzioneStep 3 – Test Your Solution

Passaggio 1: creare una semplice applicazione Web Form ASP.NETStep 1 – Create a Simple ASP.NET Web Forms Application

In questo passaggio si creerà una nuova applicazione Web Form ASP.NET.In this step, you will create a new ASP.NET Web Forms application.

Per creare un'applicazione ASP.NET sempliceTo create a simple ASP.NET application

  1. Avviare Visual Studio come amministratore in modalità con privilegi elevati.Start Visual Studio in elevated mode as administrator.

  2. In Visual Studio fare clic su File, Nuovo e quindi su Progetto.In Visual Studio, click File, click New, and then click Project.

  3. Nella finestra Nuovo progetto fare clic su Applicazione Web Form ASP.NET.In the New Project window, click ASP.NET Web Forms Application.

  4. In Nome immettere TestApp e fare clic su OK.In Name, enter TestApp and press OK.

  5. Fare clic con il pulsante destro del mouse sul progetto TestApp in Esplora soluzioni e quindi scegliere Identity and Access.Right-click the TestApp project under Solution Explorer, then select Identity and Access.

  6. Verrà visualizzata la finestra Identity and Access.The Identity and Access window appears. In Providers (Provider) selezionare Test your application with the Local Development STS (Testare l'applicazione con il servizio token di sicurezza per lo sviluppo locale) e quindi fare clic su Applica.Under Providers, select Test your application with the Local Development STS, then click Apply.

  7. Nel file Default.aspx sostituire il markup esistente con il seguente e quindi salvare il file:In the Default.aspx file, replace the existing markup with the following, then save the file:

    <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"  
        CodeBehind="Default.aspx.cs" Inherits="TestApp._Default" %>  
    
    <asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">  
          <h3>Your Claims</h3>  
        <p>  
            <asp:GridView ID="ClaimsGridView" runat="server" CellPadding="3">  
                <AlternatingRowStyle BackColor="White" />  
                <HeaderStyle BackColor="#7AC0DA" ForeColor="White" />  
            </asp:GridView>  
        </p>  
    </asp:Content>  
    
  8. Aprire il file code-behind denominato Default.aspx.cs.Open the code-behind file named Default.aspx.cs. Sostituire il codice esistente con il seguente e quindi salvare il file:Replace the existing code with the following, then save the file:

    using System;  
    using System.Web.UI;  
    using System.Security.Claims;  
    
    namespace TestApp  
    {  
        public partial class _Default : Page  
        {  
            protected void Page_Load(object sender, EventArgs e)  
            {  
                ClaimsPrincipal claimsPrincipal = Page.User as ClaimsPrincipal;  
                this.ClaimsGridView.DataSource = claimsPrincipal.Claims;  
                this.ClaimsGridView.DataBind();  
            }  
        }  
    }  
    

Passaggio 2: implementare la trasformazione delle attestazioni con un ClaimsAuthenticationManager personalizzatoStep 2 – Implement Claims Transformation Using a Custom ClaimsAuthenticationManager

In questo passaggio si eseguirà l'override di funzionalità predefinite nella classe ClaimsAuthenticationManager per aggiungere un ruolo di amministratore per l'entità di sicurezza in ingresso.In this step you will override default functionality in the ClaimsAuthenticationManager class to add an Administrator role to the incoming Principal.

Per implementare la trasformazione delle attestazioni con un ClaimsAuthenticationManager personalizzatoTo implement claims transformation using a custom ClaimsAuthenticationManager

  1. In Visual Studio fare clic con il pulsante destro del mouse sulla soluzione, scegliere Aggiungi e quindi fare clic su Nuovo progetto.In Visual Studio, right-click the on the solution, click Add, and then click New Project.

  2. Nella finestra Aggiungi nuovo progetto selezionare Libreria di classi nell'elenco dei modelli di Visual C#, immettere ClaimsTransformation e quindi scegliere OK.In the Add New Project window, select Class Library from the Visual C# templates list, enter ClaimsTransformation, and then press OK. Il nuovo progetto verrà creato nella cartella della soluzione.The new project will be created in your solution folder.

  3. Fare clic con il pulsante destro del mouse su Riferimenti nel progetto ClaimsTransformation e quindi scegliere Aggiungi riferimento.Right-click on References under the ClaimsTransformation project, and then click Add Reference.

  4. Nella finestra Gestione riferimenti selezionare System.IdentityModel e quindi fare clic su OK.In the Reference Manager window, select System.IdentityModel, and then click OK.

  5. Aprire Class1.cs oppure, se non esiste, fare clic con il pulsante destro del mouse su ClaimsTransformation, scegliere Aggiungi e quindi fare clic su Classe.Open Class1.cs, or if it doesn’t exist, right-click ClaimsTransformation, click Add, then click Class…

  6. Aggiungere le direttive using seguenti al file di codice:Add the following using directives to the code file:

    using System.Security.Claims;  
    using System.Security.Principal;  
    
  7. Aggiungere la classe e il metodo seguenti nel file di codice.Add the following class and method in the code file.

    Avviso

    Il codice seguente è solo a scopo dimostrativo. Assicurarsi di verificare le autorizzazioni previste nel codice di produzione.The following code is for demonstration purposes only; make sure that you verify your intended permissions in production code.

    public class ClaimsTransformationModule : ClaimsAuthenticationManager  
    {  
        public override ClaimsPrincipal Authenticate(string resourceName, ClaimsPrincipal incomingPrincipal)  
        {  
            if (incomingPrincipal != null && incomingPrincipal.Identity.IsAuthenticated == true)  
            {  
               ((ClaimsIdentity)incomingPrincipal.Identity).AddClaim(new Claim(ClaimTypes.Role, "Admin"));  
            }  
    
            return incomingPrincipal;  
        }  
    }  
    
  8. Salvare il file e compilare il progetto ClaimsTransformation.Save the file and build the ClaimsTransformation project.

  9. Nel progetto ASP.NET TestApp fare clic con il pulsante destro del mouse su Riferimenti e quindi scegliere Aggiungi riferimento.In your TestApp ASP.NET project, right-click on References, and then click Add Reference.

  10. Nella finestra Gestione riferimenti selezionare Soluzione nel menu a sinistra, selezionare ClaimsTransformation tra le opzioni compilate e quindi fare clic su OK.In the Reference Manager window, select Solution from the left menu, select ClaimsTransformation from the populated options, and then click OK.

  11. Nel file Web.config radice passare alla voce <system.identityModel>.In the root Web.config file, navigate to the <system.identityModel> entry. Aggiungere la riga seguente negli elementi <identityConfiguration > e salvare il file:Within the <identityConfiguration> elements, add the following line and save the file:

    <claimsAuthenticationManager type="ClaimsTransformation.ClaimsTransformationModule, ClaimsTransformation" />  
    

Passaggio 3: eseguire i test sulla soluzioneStep 3 – Test Your Solution

In questo passaggio verrà testata l'applicazione Web Form ASP.NET e si verificherà che le attestazioni vengano presentate quando un utente accede con l'autenticazione basata su form.In this step you will test your ASP.NET Web Forms application, and verify that claims are presented when a user signs in with Forms authentication.

Per testare le attestazioni con l'applicazione Web Form ASP.NET usando l'autenticazione basata su formTo test your ASP.NET Web Forms application for claims using Forms authentication

  1. Premere F5 per compilare ed eseguire l'applicazione.Press F5 to build and run the application. Dovrebbe essere visualizzato il file Default.aspx.You should be presented with Default.aspx.

  2. Nella pagina Default.aspx dovrebbe essere visualizzata una tabella sotto il titolo Your Claims che include le informazioni sulle attestazioni Issuer, OriginalIssuer, Type, Value e ValueType per l'account usato.On the Default.aspx page, you should see a table beneath the Your Claims heading that includes the Issuer, OriginalIssuer, Type, Value, and ValueType claims information about your account. L'ultima riga dovrebbe essere come la seguente:The last row should be presented in the following way:

    LOCAL AUTHORITYLOCAL AUTHORITY LOCAL AUTHORITYLOCAL AUTHORITY http://schemas.microsoft.com/ws/2008/06/identity/claims/role AmministrazioneAdmin http://www.w3.org/2001/XMLSchema#string