Compartilhar via


Como: Controles e componentes de licença

The .NET Framework Fornece um modelo de licenciamento é idêntico para todos os componentes e controles, incluindo controles Windows Forms e ASP.NET servidor de controles e é totalmente compatível com o licenciamento para os controles Microsoft ActiveX ®.

Com o licenciamento, você, sistema autônomo o autor do componente ou controle, pode ajudar a proteger sua propriedade intelectual, verificando se um desenvolvedor está autorizado a usar seu componente ou controle.Essa verificação é mais importante em time de design, quando um desenvolvedor incorpora seu componente ou controle em um aplicativo, que em time de execução.Quando um desenvolvedor usa legalmente seu componente licenciado ou controle em time de design, o aplicativo do desenvolvedor obtém uma licença de time de execução que o desenvolvedor pode distribuir livremente.

Você tem muitos outros níveis de suporte com o modelo de licenciamento de licenciamento.O modelo separa a lógica de validação do componente ou controle.Um provedor de licença concede licenças e executa a lógica de validação.O provedor é uma classe que deriva de System.ComponentModel.LicenseProvider. As etapas necessárias para ativar o licenciamento são simples.

Quando você usa a implementação padrão de LicenseProvider fornecido por LicFileLicenseProvider, o arquivo de licença está formatado da seguinte maneira:

  • O nome do arquivo deve ser o nome totalmente qualificado, incluindo o namespace, da classe com a extensão de nome de arquivo .LIC.Por exemplo:

    Namespace1.Class1.LIC

  • O conteúdo do arquivo de licença deve conter a seguinte seqüência de caracteres de texto:

    "myClassName é um componente do Licenciado."

    myClassName é o nome totalmente qualificado da classe. Por exemplo:

    "Namespace1.Class1 é um componente do Licenciado".

Os exemplos de código a seguir mostram um controle Windows Forms e um ASP.NET controle de servidor que implementam um caso simples de licenciamento.

Para ativar o licenciamento para seu componente ou controle

  1. Aplicar um LicenseProviderAttribute a classe.

  2. De telefonarValidate ou IsValid no construtor.

  3. De telefonarDispose em qualquer licença concedida no finalizador da classe ou antes do finalizador é telefonar.

Os exemplos de código a seguir usam o de classe de provedor de licença interna LicFileLicenseProvider, que lhe permite usar arquivos de licença de texto e imita o comportamento de licenciamento COM (ActiveX). Cenários de licenciamento mais complexos, tais sistema autônomo chamar um serviço XML da Web para limitar o número de instâncias de um componente, exigem tipos diferentes de provedores de licença.

Exemplo

Imports System
Imports System.ComponentModel
Imports System.Windows.Forms

' Adds the LicenseProviderAttribute to the control.
<LicenseProvider(GetType(LicFileLicenseProvider))> _
Public Class MyControl
    Inherits Control

    ' Creates a new, null license.
    Private license As License = Nothing    

    Public Sub New()        

        ' Adds Validate to the control's constructor.
        license = LicenseManager.Validate(GetType(MyControl), Me)

        ' Insert code to perform other instance creation tasks here.

    End Sub

    Protected Overrides Sub Dispose(ByVal disposing As Boolean)

        If disposing Then
            If (license IsNot Nothing) Then
                license.Dispose()
                license = Nothing
            End If
        End If

    End Sub    

End Class

using System;
using System.ComponentModel;
using System.Windows.Forms;


// Adds the LicenseProviderAttribute to the control.
[LicenseProvider(typeof(LicFileLicenseProvider))]
public class MyControl : Control 
{

   // Creates a new, null license.
   private License license = null;

   public MyControl () 
   {

      // Adds Validate to the control's constructor.
      license = LicenseManager.Validate(typeof(MyControl), this);

      // Insert code to perform other instance creation tasks here.
   }

   protected override void Dispose(bool disposing) 
   {
      if(disposing)
      {
         if (license != null) 
         {
            license.Dispose();
            license = null;
         }
      }
   }

}
// Adds the LicenseProviderAttribute to the control.

[LicenseProvider(LicFileLicenseProvider::typeid)]
public ref class MyControl: public Control
{
   // Creates a new, null license.
private:
   License^ license;

public:
   MyControl()
   {

      // Adds Validate to the control's constructor.
      license = LicenseManager::Validate( MyControl::typeid, this );

      // Insert code to perform other instance creation tasks here.
   }

public:
   ~MyControl()
   {
      if ( license != nullptr )
      {
         delete license;
         license = nullptr;
      }
   }
};
import System.*;
import System.ComponentModel.*;
import System.Windows.Forms.*;


// Adds the LicenseProviderAttribute to the control.
/** @attribute LicenseProvider(LicFileLicenseProvider.class)
 */
public class MyControl extends Control
{
    // Creates a new, null license.
    private License license = null;

    public MyControl()
    {
        // Adds Validate to the control's constructor.
        license = LicenseManager.Validate(MyControl.class.ToType(), this);

        // Insert code to perform other instance creation tasks here.
    } 

    protected void Dispose(boolean disposing)
    {
        if (disposing) {
            if (license != null) {
                license.Dispose();
                license = null;
            }
        }
    } 
} 
Imports System
Imports System.ComponentModel
Imports System.Web.UI

' Adds the LicenseProviderAttribute to the control.
<LicenseProvider(GetType(LicFileLicenseProvider))> Public Class MyControl
    Inherits Control

    ' Creates a new, null license.
    Private license As License

    Public Sub New()

        ' Adds Validate to the control's constructor.
        license = LicenseManager.Validate(GetType(MyControl), Me)

        ' Insert code to perform other instance creation tasks here.

    End Sub

    Public Overrides Sub Dispose()
        If (license IsNot Nothing) Then
            license.Dispose()
            license = Nothing
        End If
        MyBase.Dispose()
    End Sub
End Class

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

// Adds the LicenseProviderAttribute to the control.
public class MyServerControl : Control 
{
    // Creates a new, null license.
    private License license = null;

    public MyServerControl() 
    {
        // Adds Validate to the control's constructor.
        license = LicenseManager.Validate(typeof(MyServerControl), this);

        // Insert code to perform other instance creation tasks here.
    }

    public override void Dispose() 
    {      
        if (license != null) 
        {
            license.Dispose();
            license = null;
        }

        base.Dispose();
    }    
}
import System.*;
import System.ComponentModel.*;
import System.Web.UI.*;

// Adds the LicenseProviderAttribute to the control.
/** @attribute LicenseProvider(LicFileLicenseProvider.class)
 */
public class MyControl extends Control
{
    // Creates a new, null license.
    private License license = null;

    public MyControl()
    {
        // Adds Validate to the control's constructor.
        license = LicenseManager.Validate(MyControl.class.ToType(), this);

        // Insert code to perform other instance creation tasks here.
    } 

    protected void Dispose(boolean disposing)
    {
        if (license != null) 
        {
            license.Dispose();
            license = null;
        }

        super.Dispose();
    }
} 

Consulte também

Referência

LicenseProviderAttribute

LicenseProvider

Outros recursos

Criação de Componentes