![]() |
VOOZH | about |
dotnet add package Tenduke.Client --version 4.0.5
NuGet\Install-Package Tenduke.Client -Version 4.0.5
<PackageReference Include="Tenduke.Client" Version="4.0.5" />
<PackageVersion Include="Tenduke.Client" Version="4.0.5" />Directory.Packages.props
<PackageReference Include="Tenduke.Client" />Project file
paket add Tenduke.Client --version 4.0.5
#r "nuget: Tenduke.Client, 4.0.5"
#:package Tenduke.Client@4.0.5
#addin nuget:?package=Tenduke.Client&version=4.0.5Install as a Cake Addin
#tool nuget:?package=Tenduke.Client&version=4.0.5Install as a Cake Tool
This is the base client library, other platform specific client libraries are built on this one. See the repository README for client library listing.
This base client library can also be used directly, instead of the more specific client libraries derived from this one. The main cases for using this base client library are:
Main features of this base client library are:
The client library is available as a NuGet package. An example for installing the client library using NuGet Package Manager:
dotnet add package Tenduke.Client
Install-Package Tenduke.Client
Class Tenduke.Client.EntClient is the main implementation class that provides access to the APIs. Configuration and features of Tenduke.Client.WinForms.EntClient are introduced below.
User authentication is outside the scope of this client implementation. For being able to call the APIs, an OAuth access token must be used.
An instance of EntClient can be created like this:
var entClient = new EntClient()
{
OAuthConfig = myOAuthConfig,
AuthzApiConfig = myAuthzApiConfig,
AccessToken = myAccessToken
};
Here, +myOAuthConfig+ is an instance of +Tenduke.Client.Config.OAuthConfig+, for instance:
var myOAuthConfig = new OAuthConfig()
{
UserInfoUri = "https://my-test-idp.10duke.net/userinfo/"
};
Here, it is sufficient to initialize only the +UserInfoUri+, and this Uri must point to an actual 10Duke Entitlement service deployment.
myAuthzApiConfig is an instance of Tenduke.Client.Config.AuthzApiConfig, for instance:
var myAuthzApiConfig = new AuthzApiConfig()
{
EndpointUri = "https://my-test-idp.10duke.net/authz/",
SignerKey = [Public key of 10Duke Entitlement service]
};
EndpointUri points to the authorization endpoint of the actual deployment. SignerKey is the RSA public key that is used for verifying signatures of tokens issued by the 10Duke Entitlement service. The following utility is provided for reading an RSA key from string:
var publicKey = Tenduke.Client.Util.CryptoUtil.ReadRsaPublicKey(publicKeyAsString);
And finally, myAccessToken is the access token that, acquired by completing an OAuth flow. Now, the EntClient instance is ready to be used.
Example user info and license requests are given below:
var userInfo = await entClient.UserInfoApi.GetUserInfoAsync();
This call returns an object with OpenID Connect user info.
var tokenResponse = await entClient.AuthzApi.CheckOrConsumeAsync("MyLicense", true, ResponseType.JWT);
This call returns a Tenduke.Client.EntApi.Authz.AuthorizationDecision object that describes an authorization decision, returned as a signed JWT token. The AuthorizationDecision indicates if a license lease has been granted (and a license seat has been taken), and the client application can rely on the AuthorizationDecision until the object expires. Expiration of the object is the same as expiration of the returned JWT token and expiration of the license lease.
var releaseResponse = await entClient.AuthzApi.ReleaseLicenseAsync(tokenResponse["jti"], ResponseType.JWT);
This call is used for returning a consumed lease (license seat) back to the license pool.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 netcoreapp2.0 was computed. netcoreapp2.1 netcoreapp2.1 was computed. netcoreapp2.2 netcoreapp2.2 was computed. netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 netstandard2.0 is compatible. netstandard2.1 netstandard2.1 was computed. |
| .NET Framework | net461 net461 was computed. net462 net462 was computed. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 was computed. net48 net48 was computed. net481 net481 was computed. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen40 tizen40 was computed. tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 5 NuGet packages that depend on Tenduke.Client:
| Package | Downloads |
|---|---|
|
Tenduke.Client.Desktop
Base classes and utilities for 10Duke Identity and Entitlement client libraries for .Net desktop applications |
|
|
Tenduke.Client.AspNetCore
ASP.NET client library for 10Duke Identity and Entitlement |
|
|
Tenduke.Client.WPF
Package Description |
|
|
Tenduke.Client.WinForms
Package Description |
|
|
Tenduke.Client.WinBase
Base library for Windows based 10Duke Identity and Entitlement client libraries |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 4.0.5 | 1,331 | 10/6/2025 | |
| 4.0.4 | 435 | 10/5/2025 | 4.0.4 is deprecated because it has critical bugs. |
| 4.0.2 | 1,676 | 10/29/2024 | |
| 4.0.1 | 470 | 7/16/2024 | |
| 4.0.0 | 593 | 3/11/2024 | |
| 3.6.0 | 693 | 9/20/2023 | |
| 3.4.3 | 5,996 | 6/10/2022 | |
| 3.4.2 | 2,951 | 2/14/2022 | |
| 3.4.0 | 2,592 | 2/11/2022 | |
| 3.3.1 | 1,746 | 1/3/2022 | |
| 3.3.0 | 525 | 1/3/2022 | |
| 3.2.0 | 5,883 | 3/10/2021 | |
| 3.1.1 | 1,364 | 11/30/2020 | |
| 3.1.0 | 1,929 | 10/30/2020 | |
| 3.0.0 | 2,329 | 4/2/2020 | |
| 2.3.4 | 2,043 | 3/16/2020 | |
| 2.3.3 | 1,936 | 3/12/2020 | |
| 2.3.2 | 1,523 | 12/9/2019 | |
| 2.3.1 | 2,334 | 12/5/2019 |