.NET Considerations

>After your .NET assembly is protected, it requires a HASP DLL to function at run-time. HASP DLLs are native Windows DLLs that enable a protected .NET assembly to communicate with the Sentinel protection key. Include the following DLLs with your protected program: haspdnert.dll and haspdnert_x64.dll.

>When you protect a .NET Framework 1.x assembly, the Sentinel LDK Envelope output is in Framework 2.0, requiring Framework 2.0 to be installed on the end-user machine.

>Sentinel LDK Envelope for .NET requires access to all assemblies and their dependencies.

>Protect your assemblies in a development environment. Sentinel LDK Envelope requires libraries that are not part of the .NET framework but are included in the development environment.

>Sentinel LDK Envelope breaks the strong name signature of signed assemblies. To re-sign the assembly, select the strong name key in Sentinel LDK Envelope. The assembly is automatically signed as part of the protection process.

>You can use .NET framework custom attributes for the Aladdin.HASP.Envelope assembly to add protection definitions directly to your source code. The assembly and sample are located in %ProgramFiles(x86)%\Thales\Sentinel LDK\Samples\Envelope\DotNET. For information about using these custom attributes, refer to the Sentinel LDK Envelope Protection chapter in the Sentinel LDK Software Protection and Licensing Guide (for Sentinel EMS or Sentinel LDK-EMS).

>If you choose to assign separate Feature IDs for individual methods, you must ensure that your application code can only call the Feature IDs for those methods for which a valid license has been installed in a Sentinel protection key.

If methods that do not have a valid license in a Sentinel protection key are called, it will cause Sentinel LDK Envelope to generate an error loop that can only be stopped by installing a valid license.

An API is provided as part of the Sentinel LDK installation that enables you to ensure that the error loop does not occur. The API is located in %ProgramFiles(x86)%\Thales\Sentinel LDK\Samples\Envelope\DotNET. For information about this API, refer to the Sentinel LDK Envelope Protection chapter in the Sentinel LDK Software Protection and Licensing Guide (for Sentinel EMS or Sentinel LDK-EMS).

>Certain limitations exist on the methods that you can select for protection.

>When you work with .NET applications that use different versions of .NET, Envelope may generate error or warning messages. For more information, see .NET Version Conflicts.

.NET Version and Platform Support

For the target frameworks that are supported by Sentinel LDK, see the Sentinel LDK Release Notes (for Sentinel EMS or Sentinel LDK-EMS).

For information on libraries that must be installed together with the protected applications, see the section on distributing LDK software with your application in the Sentinel LDK Software Protection and Licensing Guide (for Sentinel EMS or Sentinel LDK-EMS).

Strong Name Signing of .NET Assemblies

For information on how to sign an assembly with a strong name, see: https://docs.microsoft.com/en-us/dotnet/standard/assembly/strong-named

Strong name signing has no significance for Windows Shell protection because, after protection with Sentinel LDK Envelope, the application is no longer a .Net assembly; the application become a native application.

Envelope breaks the strong name signature of signed assemblies. To re-sign the assembly, select the strong name key in Sentinel LDK Envelope. The assembly is automatically signed as part of the protection process.

Related Topics

Creating a New Project

Protecting a Project

.NET Default Protection Settings Screen

Defining .NET Assembly Protection Details

Limitations on Use of Methods in .NET Applications