FAQ
Frequently Asked Questions
How can I configure Proxy in the .NET SDK?
Zentitle2 SDK utilizes .NET HttpClient class to handle API requests. By default, HttpClient will use system proxy settings. This can be changed in HttpClientHandler by setting UseProxy property to false. You can also override Proxy on the HttpClient level if you need to.
How to generate the device fingerprint in the SDK?
We recommend using our Core Library wrapper classes' methods available in the SDK itself (like Zentitle2Core.DeviceFingerprint.GenerateForCurrentMachine()), which are designed to handle low-level details like memory allocation, etc.
How to use SDK with Core library in .NET 4.x
We have prepared a sample application implemented in .NET 4.8, which is available on our github: https://github.com/Nalpeiron/samples-dotnet/tree/master/Net48.Sdk.Sample Please follow instructions in the README file. The sample demonstrates the approach without requiring a custom DLL import resolver and leverages a secret store implemented by the C++ Core Library.
Exception Handling in the SDK
The SDK primarily throws LicensingApiException, which is used to signal issues when calling the Licensing API. In most cases, you can catch this exception type to handle all API-related errors. For more detailed handling, you can catch LicensingApiException specifically. This form gives you access to a structured ApiError object, including an error code you can use to guide behavior in your application—for example, showing tailored messages to users, retrying requests, or triggering a re-sync of the activation state. While the SDK maps most 4xx HTTP status responses to an ApiError, keep in mind that these messages are designed for developers and may not be suitable for display to end users. We recommend mapping error codes to user-friendly messages or implementing conditional logic for the specific cases relevant to your app. If you’re logging errors, it’s fine to include the raw ApiError details and stack trace in your logs (stored securely), but we suggest keeping user-facing messages simple and actionable. You can find all available error codes in the ApiErrorCodes class, and we’ve included a reference (ApiErrorCodes.cs) to help you see which methods might return which codes.
Where is the state for feature checkout/checkin stored? Is it local or in the cloud? Are they synced automatically?
The feature usage state for checkout/checkin is stored locally on the device, and also updated in the cloud during checkout and checkin operations. However, this synchronization is not continuous or automatic beyond those operations.
If the same entitlement is used across multiple devices or activations (e.g. in a shared or multi-seat setup), it’s important to manually synchronize the local and cloud states to maintain consistency. You can do this using the Activation.PullRemoteState() method.
Whether you need to manually sync depends on your entitlement configuration:
Single-seat entitlement (one activation at a time):
Typically no additional sync is necessary, as only one device can check out features at any given time.
Multi-seat entitlement (multiple activations sharing seats):
Manual syncing is recommended to ensure that all devices reflect the correct feature availability and usage.
Last updated
Was this helpful?