Class IdentityApi
Namespace: Casewhere.Runtime.DSL.Api
Assembly: Casewhere.Runtime.dll
public class IdentityApi : IIdentityApi, IDslApi
Inheritance
Implements
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
Username
public const string Username = "Username"
Field Value
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
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
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
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
Expired time of the user session
GetUserClaims()
Get the claim collection of the current user.
public ClaimsCollection GetUserClaims()
Returns
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
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
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
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
Return true if the access token is valid. Otherwise, return false.