C# SDK
The C# SDK provides typed .NET integrations for the supported Sudomimus APIs. Use the Device API reference directly when a package is not available.
Packages
Section titled “Packages”| Surface | Package or module | Release status |
|---|---|---|
| Connect | Sudomimus.Connect | Published 4.0.0 |
| Session | Sudomimus.Session | Published 4.0.0 |
| Device | — | No package |
| Native | Sudomimus.Native | Published 4.0.0 |
| Token | Sudomimus.Token | Published 4.0.0 |
Release status verified: .
Install the packages your integration needs:
dotnet add package Sudomimus.Connectdotnet add package Sudomimus.SessionConnect
Section titled “Connect”using Sudomimus.Connect;
var client = new ConnectClient(new ConnectClientOptions{ ClientAuth = new ConnectClientAuthWithKey { ApplicationAnchor = "your-app-anchor", PrivateKeyPem = File.ReadAllText("client-auth.pem"), },});
var inquiry = await client.EstablishAsync(new EstablishRequest{ ApplicationAnchor = "your-app-anchor",});/establish requires a client-auth JWT with audience sudomimus-connect. Configure ConnectClientOptions.ClientAuth to let the SDK sign it, or provide your own signer.
Sessions
Section titled “Sessions”using Sudomimus.Session;
var session = new RotatingSessionClient( new SessionClient(), new InMemoryTokenStore());
await session.SeedAsync(new TokenPair{ AccessToken = accessToken, RefreshToken = refreshToken,});
var newAccessToken = await session.RefreshAsync();await session.LogoutAsync();RevokeAllAsync is an application-backend operation and requires client-auth signing with audience sudomimus-session.
Token Verification
Section titled “Token Verification”Token verification is independent of Connect. Resolve the token’s kid from the per-application Session JWK Set at GET /applications/{applicationAnchor}/jwks.json, cache it according to Cache-Control, and use Sudomimus.Token for parsing and signature verification. Connect /info only returns localized application metadata.
After verification, use payload sub as the application-visible user key,
payload sid as the logical session id, and payload jti as the bearer-instance
id. Access tokens contain no profile fields; refresh tokens contain no user
identifier and add rotationVersion. Fetch current profile data from Session
/userinfo. Signature-only verification cannot observe later
logout, so use Session introspection for live-authority decisions.