SoftLicence.SDK
1.1.8
dotnet add package SoftLicence.SDK --version 1.1.8
NuGet\Install-Package SoftLicence.SDK -Version 1.1.8
<PackageReference Include="SoftLicence.SDK" Version="1.1.8" />
<PackageVersion Include="SoftLicence.SDK" Version="1.1.8" />
<PackageReference Include="SoftLicence.SDK" />
paket add SoftLicence.SDK --version 1.1.8
#r "nuget: SoftLicence.SDK, 1.1.8"
#:package SoftLicence.SDK@1.1.8
#addin nuget:?package=SoftLicence.SDK&version=1.1.8
#tool nuget:?package=SoftLicence.SDK&version=1.1.8
SoftLicence.SDK
The official SDK for integrating SoftLicence protection into your .NET applications (WPF, Console, WinForms).
SoftLicence provides an industrial-grade licensing solution using RSA-4096 cryptography and hardware fingerprinting (HWID).
🚀 Key Features
- RSA-4096 Signing: Ensure your license files are tamper-proof.
- Hardware Locking: Bind licenses to specific machines using unique hardware IDs.
- Trial Support: Easily implement auto-trial periods for your software.
- Online & Offline Validation: Robust verification logic even without an active internet connection.
- Typed Results: Modern API with clear success/error states.
- Custom Parameters: Inject typed per-license-type parameters (features, limits) signed into the license file.
- Device Transfer: Built-in deactivation and email-reset flows for license transfers between machines.
🛠️ Quick Start
1. Initialize the Client
var client = new SoftLicenceClient("https://your-licence-server.com", "YOUR_PUBLIC_KEY_XML");
2. Activate a License
var result = await client.ActivateAsync("YOUR-LICENSE-KEY", "YourAppName",
customerEmail: "user@example.com", // optional — stored on the server
customerName: "John Doe"); // optional — stored on the server
if (result.IsSuccess)
{
File.WriteAllText("license.lic", result.LicenseFile);
}
3. Request a Trial
var result = await client.RequestTrialAsync("YourAppName",
customerEmail: "user@example.com", // optional
customerName: "John Doe"); // optional
if (result.IsSuccess)
{
Console.WriteLine("Trial activated!");
File.WriteAllText("license.lic", result.LicenseFile);
}
4. Check License Status
var status = await client.CheckStatusAsync("YOUR_LICENSE_KEY", "YourAppName");
if (status.IsValid)
{
Console.WriteLine("License is valid!");
}
5. Transfer to Another Machine
// Option A — Machine is accessible (unlinks this seat only, instant)
var result = await client.DeactivateAsync("YOUR-LICENSE-KEY", "YourAppName");
if (result.IsSuccess)
{
// Delete local license.lic, user can activate on the new machine
}
// Option B — Machine is lost/inaccessible (unlinks ALL seats via email)
bool sent = await client.ResetRequestAsync("YOUR-LICENSE-KEY", "YourAppName");
// User receives a 6-digit code by email (expires in 15 min)
bool confirmed = await client.ResetConfirmAsync("YOUR-LICENSE-KEY", "YourAppName", "123456");
5. Read Custom Parameters
Parameters defined per license type on the server are signed into the license and accessible via GetParam<T>:
var validation = client.ValidateLocal(licenseFile, hardwareId);
if (validation.IsValid)
{
int maxAccounts = validation.License!.GetParam<int>("maxAccounts", fallback: 1);
bool withLogo = validation.License!.GetParam<bool>("withLogo", fallback: true);
}
Supported types: string, int, long, double, bool, Guid.
📚 Documentation
For full integration guides and server setup, please visit the Official Repository.
📄 License
Distributed under the Elastic License 2.0. See LICENSE file for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Management (>= 10.0.2)
- System.Text.Json (>= 8.0.5)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SoftLicence.SDK:
| Package | Downloads |
|---|---|
|
SipLine.Plugin.Sdk
Official SDK for building SipLine Softphone plugins. Provides interfaces for call control, UI extensions, and system integration. |
GitHub repositories
This package is not used by any popular GitHub repositories.