Partager via


Attribution d'une licence aux composants et aux contrôles

Le .NET Framework propose un modèle d'attribution de licence qui est identique pour tous les composants (y compris les contrôles Windows Forms et les contrôles serveur ASP.NET) et qui est entièrement compatible avec l'attribution d'une licence aux contrôles Microsoft ActiveX®.

L'attribution d'une licence permet aux auteurs de contrôles de protéger la propriété intellectuelle en vérifiant qu'un utilisateur est autorisé à utiliser le contrôle. Cette vérification est plus importante au moment du design, lorsque le contrôle est incorporé à l'application, qu'au moment de l'exécution. Lorsqu'un contrôle auquel une licence a été attribuée est légalement utilisé au moment du design (sinon il ne peut pas être utilisé), l'application obtient une licence utilisateur qui peut être librement distribuée.

Le modèle d'attribution de licence autorise également de nombreux autres niveaux de prise en charge de licence en séparant la logique de validation du composant ou du contrôle. L'attribution de licences et la logique de validation sont effectuées par un fournisseur de licence, qui est une classe qui dérive de LicenseProvider. Les étapes qu'un auteur de composants doit suivre pour permettre l'attribution d'une licence sont simples.

Pour permettre l'attribution d'une licence à votre composant

  1. Appliquez LicenseProviderAttribute à la classe.
  2. Appelez LicenseManager.Validate ou LicenseManager.IsValid dans le constructeur.
  3. Appelez Dispose dans une licence accordée dans le finaliseur de la classe ou avant l'appel du finaliseur.

L'exemple suivant illustre un contrôle Windows Forms qui implémente un simple cas d'attribution de licence.

using System;
using System.ComponentModel;
using System.Windows.Forms;
public class MyControl : Control {
    private License license = null;
    public MyControl () {
        license = LicenseManager.Validate(typeof(MyControl), this);
    }
    protected override void Dispose(bool disposing) {      
       if (disposing) {
          if (license != null) {
            license.Dispose();
            license = null;
          }
       }
      base.Dispose(disposing);
    }
    ~MyControl() {
        Dispose();
    }
}
[Visual Basic]
Imports System
Imports System.ComponentModel
Imports System.Web.UI

<LicenseProvider(GetType(LicFileLicenseProvider))> Public Class  MyControl 
Inherits Control
    Private license As License
    
    Public Sub New()
        license = LicenseManager.Validate(GetType(MyControl), Me)
    End Sub
    
    Public Overloads Overrides Sub Dispose()
        If Not (license Is Nothing) Then
            license.Dispose()
            license = Nothing
        End If
    End Sub
End Class

L'exemple suivant illustre un contrôle serveur ASP.NET qui implémente un simple cas d'attribution de licence.

using System;
using System.ComponentModel;
using System.Web.UI;

public class MyControl : Control {
    private License license = null;
    public MyControl () {
        license = LicenseManager.Validate(typeof(MyControl), this);
    }
    public override void Dispose() {      
          if (license != null) {
            license.Dispose();
            license = null;
          }
      base.Dispose();
    }    
}
[Visual Basic]
Imports System
Imports System.ComponentModel
Imports System.Web.UI

<LicenseProvider(GetType(LicFileLicenseProvider))> Public Class  MyControl 
Inherits Control
    Private license As License
    
    Public Sub New()
        license = LicenseManager.Validate(GetType(MyControl), Me)
    End Sub
    
    Public Overrides Sub Dispose()
        If Not (license Is Nothing) Then
            license.Dispose()
            license = Nothing
        End If
    End Sub
End Class

Les exemples donnés ci-dessus utilisent la classe de fournisseur de licence intégrée LicFileLicenseProvider, qui permet d'utiliser des fichiers de licence texte et imite le comportement de l'attribution d'une licence COM (ActiveX). Des scénarios d'attribution de licences plus complexes (tels que l'appel d'un service Web XML pour limiter le nombre d'instances d'un composant) nécessitent des types de fournisseurs de licence différents.

Un exemple d'attribution de licence est fourni dans le Démarrage rapide de Windows Forms sous Génération d'applications —> Création de contrôles —> Attribution d'une licence aux contrôles.

Voir aussi

Développement de composants