Questa documentazione è stata archiviata e non viene gestita.

Classe SqlRoleProvider

Nota: questa classe è stata introdotta con .NET Framework versione 2.0.

Gestisce l'archiviazione delle informazioni sull'appartenenza ai ruoli per un'applicazione ASP.NET in un database SQL Server.

Spazio dei nomi: System.Web.Security
Assembly: System.Web (in system.web.dll)

public class SqlRoleProvider : RoleProvider
public class SqlRoleProvider extends RoleProvider
public class SqlRoleProvider extends RoleProvider

Questa classe è utilizzata dalle classi Roles e RolePrincipal per fornire servizi di gestione ruoli per un'applicazione ASP.NET mediante un database SQL Server. È possibile utilizzare la gestione ruoli per specificare livelli diversi di autorizzazione per l'applicazione.

Per utilizzare la classe SqlRoleProvider, è necessario innanzitutto creare il database SQL Server utilizzato dall'oggetto SqlRoleProvider. Per creare il database utilizzato dalla classe SqlRoleProvider, eseguire il file aspnet_regsql.exe contenuto nella cartella C:\WINDOWS\Microsoft.NET\Framework\ versionNumber e specificare l'opzione -Ar option, ad esempio aspnet_regsql.exe -Ar. Il database creato è denominato Aspnetdb. In alternativa, eseguire aspnet_regsql.exe per attivare la modalità di configurazione GUI e scegliere di configurare tutte le funzionalità ASP.NET.

Se il provider di ruoli è configurato con una stringa di connessione che prevede l'utilizzo della protezione integrata, l'account di processo dell'applicazione ASP.NET deve disporre dell'autorizzazione a connettersi al database SQL Server.

Il file Machine.config è configurato con un'istanza di SqlRoleProvider denominata AspNetSqlProvider che consente la connessione a SQL Server sul computer locale. È possibile utilizzare questa istanza del provider oppure specificarne una nel file Web.config dell'applicazione ASP.NET. Per utilizzare l'istanza AspNetSqlProvider, specificare AspNetSqlProvider come defaultProvider nella configurazione roleManager.

È possibile configurare l'oggetto SqlRoleProvider per l'utilizzo delle stesse informazioni utente e database dell'oggetto SqlMembershipProvider al fine di utilizzare un unico database per le informazioni relative ad autenticazione e autorizzazione. Per utilizzare lo stesso database per le informazioni relative ad appartenenza e ruoli, eseguire il file aspnet_regsql.exe e installare la funzionalità di appartenenza. Specificare quindi la stessa stringa di connessione nella configurazione per entrambe le istanze di SqlRoleProvider e SqlMembershipProvider. Assicurarsi inoltre che entrambe le istanze del provider vengano configurate con la stessa proprietà ApplicationName.

Nell'esempio riportato di seguito viene illustrato il file Web.config per un'applicazione ASP.NET configurata per l'utilizzo di un oggetto SqlRoleProvider e di SqlMembershipProvider. L'elemento authorization è configurato per consentire l'accesso unicamente agli utenti autenticati che appartengono al ruolo Administrators.

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
  </connectionStrings>
  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="logincs.aspx"
      name=".ASPXFORMSAUTH" />
    </authentication>
    <authorization>
      <deny users="?" />
         <allow roles="Administrators" />
         <deny users="*" />
    </authorization>
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
      <providers>
        <add 
          name="SqlProvider" 
          type="System.Web.Security.SqlMembershipProvider" 
          connectionStringName="SqlServices"
          enablePasswordRetrieval="false"
          enablePasswordReset="false"
          requiresQuestionAndAnswer="false" 
          passwordFormat="Hashed" 
          applicationName="SampleApplication" />
      </providers>
    </membership>
    <roleManager defaultProvider="SqlProvider" 
      enabled="true"
      cacheRolesInCookie="true"
      cookieName=".ASPROLES"
      cookieTimeout="30"
      cookiePath="/"
      cookieRequireSSL="true"
      cookieSlidingExpiration="true"
      cookieProtection="All" >
      <providers>
        <add
          name="SqlProvider"
          type="System.Web.Security.SqlRoleProvider"
          connectionStringName="SqlServices" 
          applicationName="SampleApplication" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

  • AspNetHostingPermission  per utilizzare la classe SqlRoleProvider in un ambiente host. Valore richiesta: LinkDemand. Valore autorizzazione: Minimal.

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0
Mostra: