Table of Contents

Class IdentityApi

Namespace: Casewhere.Runtime.DSL.Api
Assembly: Casewhere.Runtime.dll

public class IdentityApi : IIdentityApi, IDslApi

Inheritance

objectIdentityApi

Implements

IIdentityApi, IDslApi

Inherited Members

object.ToString(), object.Equals(object), object.Equals(object, object), object.ReferenceEquals(object, object), object.GetHashCode(), object.GetType(), object.MemberwiseClone()

Extension Methods

ObjectExtension.ConvertToBsonValue(object), EnumExtensions.DeepClone<IdentityApi>(IdentityApi)

Constructors

IdentityApi(IRuntimePrincipalProvider, IUserSessionRepository, IEncryptionService, ISPIDPSessionRepository, IAuthorizationCodeRepository, IWorkerSiteRepository, IUserTokenDecryptionService)

public IdentityApi(IRuntimePrincipalProvider runtimePrincipalProvider, IUserSessionRepository userSessionRepository, IEncryptionService encryptionService, ISPIDPSessionRepository spIdPSessionRepository, IAuthorizationCodeRepository authorizationCodeRepository, IWorkerSiteRepository workerSiteRepository, IUserTokenDecryptionService userTokenDecryptionService)

Parameters

runtimePrincipalProvider IRuntimePrincipalProvider

userSessionRepository IUserSessionRepository

encryptionService IEncryptionService

spIdPSessionRepository ISPIDPSessionRepository

authorizationCodeRepository IAuthorizationCodeRepository

workerSiteRepository IWorkerSiteRepository

userTokenDecryptionService IUserTokenDecryptionService

Fields

UserId

public const string UserId = "UserId"

Field Value

string

Username

public const string Username = "Username"

Field Value

string

Methods

CheckUserSessionValidity(Guid)

Check user session still valid/active

var identityApi = ctx.Use<IIdentityApi>();
identityApi.CheckUserSessionValidity("623977EE-BD06-4256-8D66-9B94A7BE6FCC");

public bool CheckUserSessionValidity(Guid userSessionId)

Parameters

userSessionId Guid

A given UserSessionId

Returns

bool

true: If the user session is still valid/active, otherwise false.

CreateAuthorizationCode(AuthorizationCodeModel)

To create an authorization code to serve for getting the access token later.

var identityApi = ctx.Use<IIdentityApi>();
var model = new AuthorizationCodeModel
{
WorkerSiteDomain = "your-worker.casewhere.com",
Username = "NemUser",
Claims = new Dictionary<string, string>{ { "CPR", "12345" } },
ExpiredSessionMinutes = 180
};
identityApi.CreateAuthorizationCode(model);

public string CreateAuthorizationCode(AuthorizationCodeModel authorizationCodeModel)

Parameters

authorizationCodeModel AuthorizationCodeModel

Given username

Returns

string

GetClaims(string)

Get all values of a given claim in the current user claim collection.

public IList<string> GetClaims(string type)

Parameters

type string

Claim type

Returns

IList<string>

A list of claims of the specified type

Examples

var identityApi = ctx.Use<IIdentityApi>();
var claimType = "ClaimType";
var claims = identityApi.GetClaims(claimType);

GetExpiredTime(Guid)

Get the user session expired time

var identityApi = ctx.Use<IIdentityApi>();
identityApi.GetExpiredTime("623977EE-BD06-4256-8D66-9B94A7BE6FCC");

public DateTime? GetExpiredTime(Guid userSessionId)

Parameters

userSessionId Guid

A given UserSessionId

Returns

DateTime?

Expired time of the user session

GetUserClaims()

Get the claim collection of the current user.

public ClaimsCollection GetUserClaims()

Returns

ClaimsCollection

A claim Collection if found, otherwise null

Examples

var identityApi = ctx.Use<IIdentityApi>();
var claimsCollection = identityApi.GetUserClaims();

GetUserClaimsBySPIdPSession(Guid)

Get the claim collection of a given SPIDPSessionId

public ClaimsCollection GetUserClaimsBySPIdPSession(Guid spIDPSessionId)

Parameters

spIDPSessionId Guid

A given SPIDPSessionId

Returns

ClaimsCollection

A claim collection if found, otherwise null

GetUserClaimsByUserSessionId(Guid)

Get the claim collection of a given UserSessionId

public ClaimsCollection GetUserClaimsByUserSessionId(Guid userSessionId)

Parameters

userSessionId Guid

A given UserSessionId

Returns

ClaimsCollection

A claim Collection if found, otherwise null

Impersonate(string)

To pretend to be someone else by changing another username

var identityApi = ctx.Use<IIdentityApi>();
identityApi.Impersonate("dtt");

public void Impersonate(string username)

Parameters

username string

New username

RemoveClaim(string, string)

Remove a given claim in the current user claim collection.

public void RemoveClaim(string type, string value = null)

Parameters

type string

Claim type

value string

Claim value (If this parameter has a value, it will be deleted; otherwise, all values of this claim type will be deleted)

Examples

var identityApi = ctx.Use<IIdentityApi>();
var claimType = "ClaimType";
var claimValue = ""; // Optional
identityApi.RemoveClaim(claimType, claimValue);

SetClaim(string, params string[])

Set the new claim into identity

var identityApi = ctx.Use<IIdentityApi>();
identityApi.SetClaim("CPR", "123456789");

public void SetClaim(string type, params string[] values)

Parameters

type string

Claim type

values string[]

Claim values

SetClaimForSPIdPSession(Guid, string, params string[])

Update the claim set of the given SPIdPSession and this update will affect to the access token later

var identityApi = ctx.Use<IIdentityApi>();
identityApi.SetClaimForSPIdPSession("00000000-0000-0000-0000-000000000000", "CPR", "123456789");

public void SetClaimForSPIdPSession(Guid spIdPSessionId, string type, params string[] values)

Parameters

spIdPSessionId Guid

type string

Claim type

values string[]

Claim values

SetClaimForUserSession(Guid, string, params string[])

Update the claim set of the given UserSession and this update will affect to the access token right after

var identityApi = ctx.Use<IIdentityApi>();
identityApi.SetClaimForUserSession("00000000-0000-0000-0000-000000000000", "CPR", "123456789");

public void SetClaimForUserSession(Guid userSessionId, string type, params string[] values)

Parameters

userSessionId Guid

type string

Claim type

values string[]

Claim values

TerminateAccessToken(string)

To terminate all user sessions related to given access token.

var identityApi = ctx.Use<IIdentityApi>();
identityApi.TerminateAccessToken("Enter your access token");

public TerminateAccessTokenResult TerminateAccessToken(string accessToken)

Parameters

accessToken string

Given access token

Returns

TerminateAccessTokenResult

TerminateUserSession(string)

To terminate the user session of given username.

var identityApi = ctx.Use<IIdentityApi>();
identityApi.TerminateUserSession("dtt");

public void TerminateUserSession(string username)

Parameters

username string

Given username

TerminateUserSession(Guid)

To terminate the user session of given userSessionId.

var identityApi = ctx.Use<IIdentityApi>();
identityApi.TerminateUserSession("623977EE-BD06-4256-8D66-9B94A7BE6FCC");

public void TerminateUserSession(Guid userSessionId)

Parameters

userSessionId Guid

Given user session ID

TryToGetUserToken(string, out UserToken)

Try to get the user token from the given access token.

public bool TryToGetUserToken(string accessToken, out UserToken userToken)

Parameters

accessToken string

The access token

userToken UserToken

The returned user token

Returns

bool

Return true if the access token is valid. Otherwise, return false.