Procedura: utilizzare il provider di ruoli ASP.NET con un servizio

Il provider di ruoli ASP.NET (insieme al provider di appartenenza ASP.NET) è una funzionalità grazie alla quale gli sviluppatori ASP.NET sono in grado di creare siti Web che consentono agli utenti di creare un account in un sito e di acquisire ruoli a scopo di autorizzazione. Con questa funzionalità qualsiasi utente può stabilire un account nel sito e accedere in modo esclusivo al sito e ai relativi servizi. Si tratta di una funzionalità in contrasto con la protezione di Windows, in base alla quale è necessario che gli utenti dispongano di un account in un dominio Windows. Qualsiasi utente che fornisca le credenziali (ovvero nome utente e password) può utilizzare il sito e i relativi servizi.

Per un'applicazione di esempio, vedere Membership and Role Provider. Per ulteriori informazioni sulla funzione del provider di appartenenza ASP.NET, vedere Procedura: utilizzare provider di appartenenza ASP.NET.

La funzionalità del provider di ruoli utilizza un database SQL Server per archiviare informazioni utente. Gli sviluppatori di Windows Communication Foundation (WCF) possono avvalersi di queste funzionalità per motivi di protezione. Dopo l'integrazione in un'applicazione WCF, gli utenti devono fornire nome utente e password all'applicazione client WCF. Per attivare l'utilizzo del database in WCF, è necessario creare un'istanza della classe ServiceAuthorizationBehavior, impostare la proprietà PrincipalPermissionMode su UseAspNetRoles e aggiungere l'istanza all'insieme dei comportamenti nella classe ServiceHost in cui risiede il servizio.

Per configurare il provider di ruoli

  1. Nel file Web.config file, nell'elemento <system.web> aggiungere un elemento <roleManager> e impostarne l'attributo enabled su true.

  2. Impostare l'attributo defaultProvider su SqlRoleProvider.

  3. Aggiungere un elemento <providers> come figlio dell'elemento <roleManager>.

  4. Aggiungere un elemento <add> come figlio dell'elemento <providers>, con gli attributi seguenti impostati sui valori appropriati: name, type, connectionStringName e applicationName, come mostrato nell'esempio seguente.

    <!-- Configure the Sql Role Provider. -->
    <roleManager enabled ="true" 
     defaultProvider ="SqlRoleProvider" >
       <providers>
         <add name ="SqlRoleProvider" 
           type="System.Web.Security.SqlRoleProvider" 
           connectionStringName="SqlConn" 
           applicationName="MembershipAndRoleProviderSample"/>
       </providers>
    </roleManager>
    

Per configurare il servizio per l'utilizzo del provider di ruoli

  1. Nel file Web.config aggiungere un elemento <system.ServiceModel>.

  2. Aggiungere un elemento <behaviors> all'elemento <system.ServiceModel>.

  3. Aggiungere una sezione serviceBehaviors section all'elemento <behaviors>.

  4. Aggiungere un elemento Behavior element e impostare l'attributo name su un valore appropriato.

  5. Aggiungere un <serviceAuthorization> element all'elemento <behavior>.

  6. Impostare l'attributo principalPermissionMode su UseAspNetRoles.

  7. Impostare l'attributo roleProviderName su SqlRoleProvider. Nell'esempio seguente viene illustrata una parte della configurazione.

    <behaviors>
     <serviceBehaviors>
      <behavior name="CalculatorServiceBehavior">
       <serviceAuthorization principalPermissionMode ="UseAspNetRoles"
                             roleProviderName ="SqlRoleProvider" />
      </behavior>
     </serviceBehaviors>
    </behaviors>
    

Vedere anche

Attività

Procedura: utilizzare provider di appartenenza ASP.NET

Altre risorse

Membership and Role Provider