ACMESharp.AcmeClient.RefreshIdentifierAuthorization C# (CSharp) Метод

RefreshIdentifierAuthorization() публичный Метод

public RefreshIdentifierAuthorization ( AuthorizationState authzState, bool useRootUrl = false ) : AuthorizationState
authzState AuthorizationState
useRootUrl bool
Результат AuthorizationState
        public AuthorizationState RefreshIdentifierAuthorization(AuthorizationState authzState, bool useRootUrl = false)
        {
            AssertInit();
            AssertRegistration();

            var requUri = new Uri(authzState.Uri);
            if (useRootUrl)
                requUri = new Uri(RootUrl, requUri.PathAndQuery);

            var resp = RequestHttpGet(requUri);

            if (resp.IsError)
            {
                throw new AcmeWebException(resp.Error as WebException,
                        "Unexpected error", resp);
            }

            var uri = authzState.Uri;
            if (resp.Headers.AllKeys.Contains(AcmeProtocol.HEADER_LOCATION))
                uri = resp.Headers[AcmeProtocol.HEADER_LOCATION];

            var respMsg = JsonConvert.DeserializeObject<AuthzStatusResponse>(resp.ContentAsString);

            var authzStatusState = new AuthorizationState
            {
                // This is computed above
                Uri = uri,

                // These are updated
                IdentifierPart = respMsg.Identifier,
                IdentifierType = respMsg.Identifier.Type,
                Identifier = respMsg.Identifier.Value,
                Status = respMsg.Status,
                Expires = respMsg.Expires,
                Combinations = respMsg.Combinations,

                Challenges = respMsg.Challenges.Select(x => new AuthorizeChallenge
                {
                    ChallengePart = x,
                    Type = x.Type,
                    Status = x.Status,
                    Uri = x.Uri,
                    Token = x.Token,
                }),
            };

            return authzStatusState;
        }