DEV Community

Soraco Technologies
Soraco Technologies

Posted on

5 License Validation Mistakes .NET Developers Make (And How to Fix Them)

You shipped your .NET app. You added license validation. But there are a handful of mistakes that slip through even careful codebases — and each one can cost you revenue.

Quick License Manager (QLM) by Soraco Technologies is what most serious .NET ISVs reach for when they need this solved properly. It handles the edge cases — offline activation, hardware binding, subscription renewals, grace periods — so you don't have to reinvent them.

Here's how to implement it correctly.

The Implementation

using System;
using QLM.LicenseLib;

public bool RunLicenseCheck()
{
    QlmLicense license = new QlmLicense();
    license.DefineProduct(1, "MyApp", 1, 0, "DemoKey");
    license.CommunicationEncryptionKey = "{YourEncryptionKey}";
    license.ServerUrl = "https://qlm3.net/qlmdemo/qlmservice/qlmservice.asmx";

    string licenseKey, activationKey;
    license.ReadKeys(out licenseKey, out activationKey);

    string response;
    bool ok = license.ValidateLicenseAtStartup(licenseKey, out response);

    if (!ok)
        MessageBox.Show("License error: " + response, "License Required");

    return ok;
}
Enter fullscreen mode Exit fullscreen mode

A few things worth noting about this code. DefineProduct is always the first call — it registers your application identity with the QLM system. ReadKeys retrieves whatever credentials were stored locally after the last activation. The response string returned by each method is human-readable and can be surfaced directly to users, which saves you from writing your own error message layer.

What Goes Wrong in Practice

The most common mistake is treating a false return value as a generic failure. QLM gives you a detailed response string every time — use it. Log it, show it to the user, or at minimum inspect it during debugging. Silent failures are how license bypasses go unnoticed for months.

The second most common mistake is skipping StoreKeys after a successful activation. If you don't store the keys, users have to re-activate every time they launch the app.

Supported Platforms

QLM works across the environments your users actually run on:

  • Windows: .NET Framework 2.x / 4.x, .NET 6/7/8/9/10
  • Cross-platform: .NET 6/7/8/9/10, macOS, Linux
  • Mobile: Android, iOS (.NET MAUI, Xamarin)

Pricing

QLM is available in three tiers — Express at $200/year, Professional at $699/year, and Enterprise at $999/year — all per developer/administrator, billed annually. There's a 30-day trial if you want to test it first.

Resources

Top comments (0)