Esempio n. 1
0
        public Task SaveAsync(AuthenticationTicket authenticationTicket, CancellationToken cancellationToken)
        {
            var storageItem = new AuthenticationTicketStorageItem
            {
                Version          = Version,
                AuthorizationKey = authenticationTicket.AuthorizationKey,
                User             = authenticationTicket.User
            };

            return(this.secureStorage.SaveAsync(JsonConvert.SerializeObject(storageItem), cancellationToken));
        }
Esempio n. 2
0
        private AuthenticationTicket GetAuthenticationTicketFromJObject(JObject payload, int payloadVersion, CancellationToken cancellationToken)
        {
            switch (payloadVersion)
            {
            case Version:
                AuthenticationTicketStorageItem storageItem = payload.ToObject <AuthenticationTicketStorageItem>();

                if (string.IsNullOrEmpty(storageItem.AuthorizationKey) || string.IsNullOrEmpty(storageItem.User?.Id))
                {
                    throw new InvalidOperationException("Stored authentication ticket is not valid.");
                }

                return(new AuthenticationTicket(storageItem.AuthorizationKey, null, storageItem.User));

            default:
                throw new ArgumentOutOfRangeException(nameof(payloadVersion), payloadVersion, "Unknown version number.");
            }
        }