/// <summary> /// Request authorisation state of the user /// </summary> /// <param name="requestState"></param> /// <returns></returns> public RequestAuthorisationStateResponse RequestAuthorisationState(RequestAuthorisationState requestState) { using (Task <RequestAuthorisationStateResponse> runner = RequestAuthorisationStateAsync(requestState)) { return(runner.Result); } }
/// <summary> /// Request authorisation state of the user /// </summary> /// <param name="requestState"></param> /// <returns></returns> public async Task <RequestAuthorisationStateResponse> RequestAuthorisationStateAsync(RequestAuthorisationState requestState) { if (!string.IsNullOrEmpty(DirectoryName) && string.IsNullOrEmpty(requestState.DirectoryName)) { requestState.DirectoryName = DirectoryName; } var jsonString = JsonSerializer(requestState); using (var client = CreateClient(jsonString)) { var content = new StringContent(jsonString, Encoding.UTF8, "application/json"); var result = await client.PostAsync("api/ApplicationAPI/RequestAuthenticationState", content); if (result.StatusCode != System.Net.HttpStatusCode.OK) { return new RequestAuthorisationStateResponse { State = UserAuthenticatorStateEnum.INVALID } } ; var stringResponse = await result.Content.ReadAsStringAsync(); try { var response = JsonDeserialize <RequestAuthorisationStateResponse>(stringResponse); if (VerifySignature(response.SignedResponse, response.RandomToken, requestState.Username, response.State.ToString(), response.SignedTime)) { return(response); } else { return(new RequestAuthorisationStateResponse { State = UserAuthenticatorStateEnum.INVALID }); } } catch { return(new RequestAuthorisationStateResponse { State = UserAuthenticatorStateEnum.INVALID }); } } }