Protected Overridable Sub RecordDeactivation ( _ context As ServerRequestContext, _ limit As ActivationLimit, _ profile As ActivationProfile _ )
protected virtual void RecordDeactivation( ServerRequestContext context, ActivationLimit limit, ActivationProfile profile )
Note If you make changes to the original license that should be sent back to the client you must call NotifyModification(Limit) to ensure those changes are sent.
Variable | Description |
---|---|
MachineProfile | The client machine's profile hash. Same as passed in the machineProfileHash parameter. |
MachineProfile.Absolute | The client machine's profile hash. The actual profile of the machine if the MachineProfile entry was overridden. |
LicensedType | The full name of the Type being validated including namespace. |
LicensedAssembly | The full name of the assembly being validated. |
LicensedAssemblyName | The display (or short) name of the assembly being validated. Does not include the version or culture information. |
LicensedAssemblyVersion | The version of the assembly being validated. |
IsServiceRequest | Indicates if the validating process is a Windows service or an ASP.NET XML Web Service. |
IsWebRequest | Indicates if the validating process is an ASP.NET application (but not an ASP.NET XML Web Service). |
IsManagerRequest | Indicates if the request originated from the DeployLX Manager and not from the client machine. |
* | Additional values may be included by the limit that initiated the request. Check the documentation of the limit to see if any other values can be included with the server request. |
This sample demonstrates a very basic implementation of a license server's Deactivate method. For complete information on license servers see the License Servers in DeployLX Licensing topic.
<%@ WebService Language="VB" Class="MyLicenseServer" %>
Imports System
Imports System.IO
Imports System.Collections
Imports DeployLX.Licensing.v5
Imports DeployLX.Licensing.Management.v5
<System.Web.Services.WebService(Namespace:="http://www.xheo.com/licensing/v3_0")> _
Public Class MyLicenseServer
Inherits DeployLX.Licensing.Management.v5.LicenseServer
...
Protected Overrides Function CanDeactivate(ByVal context As ServerRequestContext, ByVal limit As ActivationLimit, ByVal phase As DeactivationPhase, ByRef suggestedProfile As ActivationProfile) As Boolean
If FileContains("ActivatedSerials.dat", context.SerialNumber) Then
Return True
End If
Return False
End Function
Protected Overrides Sub RecordDeactivation(ByVal context As ServerRequestContext, ByVal limit As ActivationLimit, ByVal profile As ActivationProfile)
AddToFile("DeactivatedSerials.dat", context.SerialNumber)
End Sub
...
Private Shared Sub AddToFile(ByVal path As String, ByVal serialNumber As String)
If FileContains(path, serialNumber) Then
Return
End If
Using writer As New StreamWriter(path, True)
writer.WriteLine(serialNumber)
End Using
End Sub
Private Shared Function FileContains(ByVal path As String, ByVal serialNumber As String) As Boolean
Using reader As New StreamReader(path)
Dim line As String = reader.ReadLine()
If line.Contains(serialNumber) Then
Return True
End If
End Using
Return False
End Function
End Class
<%@ WebService Language="C#" Class="MyLicenseServer" %>
using System;
using System.IO;
using System.Collections;
using DeployLX.Licensing.v5;
using DeployLX.Licensing.Management.v5;
[System.Web.Services.WebService( Namespace="http://www.xheo.com/licensing/v3_0" ) ]
public class MyLicenseServer : DeployLX.Licensing.Management.v5.LicenseServer
{
...
protected override bool CanDeactivate( ServerRequestContext context, ActivationLimit limit, DeactivationPhase phase, ref ActivationProfile suggestedProfile )
{
if( FileContains( "ActivatedSerials.dat", context.SerialNumber ) )
return true;
return false;
}
protected override void RecordDeactivation( ServerRequestContext context, ActivationLimit limit, ActivationProfile profile )
{
AddToFile( "DeactivatedSerials.dat", context.SerialNumber );
}
...
private static void AddToFile( string path, string serialNumber )
{
if( FileContains( path, serialNumber ) )
return;
using( StreamWriter writer = new StreamWriter( path, true ) )
writer.WriteLine( serialNumber );
}
private static bool FileContains( string path, string serialNumber )
{
using( StreamReader reader = new StreamReader( path ) )
{
string line = reader.ReadLine();
if( line.Contains( serialNumber ) )
return true;
}
return false;
}
}
Assembly: DeployLX.Licensing.Management.v5 (in DeployLX.Licensing.Management.v5.dll)