Como: Controles e componentes de licença
O .NET Framework fornece um modelo de licenciamento é idêntico para todos os componentes e controles, incluindo controles Windows Forms e ASP.NET server controla e é totalmente compatível com o licenciamento para controles de ActiveX do Microsoft ®.
Com o licenciamento, como o autor do componente ou controle, pode ajudar a proteger sua propriedade intelectual, verificando se o desenvolvedor está autorizado a usar seu componente ou controle. Essa verificação é mais importante em tempo de design, quando um desenvolvedor incorpora o componente ou controle em um aplicativo, que em tempo de execução. Quando um desenvolvedor usa legalmente seu componente licenciado ou controle em tempo de design, o aplicativo do desenvolvedor obtém uma licença de tempo 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 que devem ser tomadas 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. PARA. Por exemplo:
Namespace1.Class1.lic
O conteúdo do arquivo de licença deve conter a seguinte seqüência de texto:
"myClassName é um componente do Licenciado."
myClassNameé o nome totalmente qualificado da classe. Por exemplo:
"O Namespace1.Class1 é um componente do licenciado".
Os exemplos de código a seguir mostram um controle Windows Forms e uma ASP.NET o controle de servidor que implementam um caso simples de licenciamento.
Para ativar o licenciamento para o seu componente ou controle
Aplicar uma LicenseProviderAttribute para a classe.
Chame Dispose em qualquer licença concedida no finalizador da classe ou antes do finalizer é chamado.
Os exemplos de código a seguir usam a classe do provedor de licença interna LicFileLicenseProvider, que permite que você use os arquivos de licença de texto e imita o comportamento de licenciamento do COM (ActiveX). Cenários de licenciamento mais complexos, como, por exemplo, chamando um XML Web service 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;
}
}
};
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();
}
}