Udostępnij za pośrednictwem


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

  1. Zastosowanie LicenseProviderAttribute do klasy.

  2. Wywołanie Validate lub IsValid w konstruktorze.

  3. 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();
    }    
}

Zobacz też

Informacje

LicenseProviderAttribute

LicenseProvider

Inne zasoby

Tworzenie składników