Пример #1
0
 /// <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);
     }
 }
Пример #2
0
        /// <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
                    });
                }
            }
        }