Porady: licencjonowanie składników i kontrolek
.NET Framework Udostępnia model licencjonowania, który jest identyczny dla wszystkich składników i formantów, w tym formanty Windows Forms i ASP.NET serwer kontroluje i jest w pełni zgodny z licencjonowania dla formantów Microsoft ActiveX ®.
Z licencjonowania, jako autor składnika lub formantu, ułatwić ochronę własności intelektualnej, sprawdzając, czy deweloper jest upoważnione do stosowania składnika lub formantu.Weryfikacja ta jest bardziej istotne w czasie projektowania, gdy programista włącza składnika lub formantu do aplikacji, niż w czasie wykonywania.Gdy programista używa prawnie licencjonowanego składnika lub formantu w czasie projektowania, dewelopera aplikacji pobiera licencji run-time, że deweloper swobodnie można rozpowszechniać.
Masz wiele poziomów wsparcia z modelem licencjonowania licencjonowania.Model oddziela logiki sprawdzania poprawności od składnika lub formantu.Dostawca licencji udziela licencji i wykonuje logiki sprawdzania poprawności.Dostawca jest klasa pochodzi od LicenseProvider.Kroki, które należy wykonać, aby włączyć licencjonowania są proste.
Kiedy używać domyślnej wykonania LicenseProvider dostarczonych przez LicFileLicenseProvider, plik licencji jest sformatowany w następujący sposób:
Nazwa pliku musi być pełna nazwa, łącznie z obszaru nazw klasy z rozszerzeniem nazwy pliku.LIC.Na przykład:
Namespace1.Class1.LIC
Zawartość pliku licencji powinien zawierać następujący ciąg:
"myClassName jest składnikiem licencjonowanych."
myClassNamejest pełną nazwę klasy.Na przykład:
"Namespace1.Class1 jest licencjonowanego składnika".
Następujące przykłady kodu Pokaż formantu Windows Forms i ASP.NET wdrożenia w prostym przypadku licencjonowania formant serwera.
Aby włączyć licencjonowania dla składnika lub formantu
Zastosowanie LicenseProviderAttribute do klasy.
Wywołanie Dispose na licencji przyznanych w finalizatorów klasy lub przed finalizatorów.
Następujące przykłady kodu użyć klasy dostawcy wbudowanych licencji LicFileLicenseProvider, która umożliwia korzystanie z plików tekstowych licencji i naśladuje zachowanie licencji modelu COM (ActiveX).Bardziej złożonych scenariuszy licencjonowania, takie jak wywoływanie usługi XML sieci Web, aby ograniczyć liczbę wystąpień składnika, wymagają różnych rodzajów licencji dostawców.
Przykład
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();
}
}