public static async Task <CustomerAuthenticationProfile> RefreshUserAuthTicket(AuthTicket authTicket)
        {
            var resourceUrl = CustomerAuthTicketUrl.RefreshUserAuthTicketUrl(authTicket.RefreshToken).Url;

            var authUrl = await GetAuthUrl(authTicket.TenantId.Value).ConfigureAwait(false);

            var client = new HttpClient {
                BaseAddress = new Uri(authUrl)
            };

            AppAuthenticator.AddHeader(client);

            if (authTicket.SiteId.HasValue)
            {
                client.DefaultRequestHeaders.Add(Headers.X_VOL_SITE, authTicket.SiteId.Value.ToString());
            }

            var stringContent = JsonConvert.SerializeObject(authTicket);
            var response      = client.PutAsync(resourceUrl, new StringContent(stringContent, Encoding.UTF8, "application/json")).Result;

            ResponseHelper.EnsureSuccess(response);

            var userInfo = SetUserAuth(response.Content.ReadAsStringAsync().Result, authTicket.AuthenticationScope, authTicket.TenantId.Value, authTicket.SiteId.Value);

            return(userInfo);
        }
Exemplo n.º 2
0
 public static void DeleteAuth()
 {
     if (_auth != null)
     {
         var resourceUrl = AuthTicketUrl.DeleteAppAuthTicketUrl(_auth.AppAuthTicket.RefreshToken);
         var client      = new HttpClient {
             BaseAddress = new Uri(_auth.BaseUrl)
         };
         var response = client.DeleteAsync(resourceUrl.Url).Result;
         ResponseHelper.EnsureSuccess(response);
     }
 }
Exemplo n.º 3
0
        public static async Task LogoutAsync(AuthTicket authTicket)
        {
            var url    = GetLogoutUrl(authTicket);
            var client = new HttpClient {
                BaseAddress = new Uri(AppAuthenticator.Instance.BaseUrl)
            };

            AppAuthenticator.AddHeader(client);

            var response = await client.DeleteAsync(url);

            ResponseHelper.EnsureSuccess(response);
        }
Exemplo n.º 4
0
        private async Task AuthenticateAppAsync()
        {
            var resourceUrl = AuthTicketUrl.AuthenticateAppUrl();

            _log.Info(String.Format("App authentication Url : {0}{1}", BaseUrl, resourceUrl.Url));
            var client = new HttpClient {
                BaseAddress = new Uri(BaseUrl)
            };
            var stringContent = JsonConvert.SerializeObject(_appAuthInfo);
            var response      = await client.PostAsync(resourceUrl.Url, new StringContent(stringContent, Encoding.UTF8, "application/json"));

            ResponseHelper.EnsureSuccess(response);

            AppAuthTicket = await response.Content.ReadAsAsync <AuthTicket>();

            SetRefreshIntervals(true);
        }
Exemplo n.º 5
0
        public static async Task <AuthenticationProfile> AuthenticateAsync(UserAuthInfo authInfo, AuthenticationScope scope, int?id = null)
        {
            var resourceUrl = GetResourceUrl(scope, id);

            var client = new HttpClient {
                BaseAddress = new Uri(AppAuthenticator.Instance.BaseUrl)
            };


            var stringContent = JsonConvert.SerializeObject(authInfo);

            AppAuthenticator.AddHeader(client);

            var response = await client.PostAsync(resourceUrl, new StringContent(stringContent, Encoding.UTF8, "application/json"));

            ResponseHelper.EnsureSuccess(response);


            return(SetUserAuth(response.Content.ReadAsStringAsync().Result, scope, null));
        }
Exemplo n.º 6
0
        /// <summary>
        /// Refresh the application auth ticket using the refresh token
        /// </summary>
        private void RefreshAppAuthTicket()
        {
            var resourceUrl = AuthTicketUrl.RefreshAppAuthTicketUrl();

            _log.Info(String.Format("App authentication refresh Url : {0}{1}", BaseUrl, resourceUrl.Url));
            var client = new HttpClient {
                BaseAddress = new Uri(BaseUrl)
            };
            var authTicketRequest = new AuthTicketRequest {
                RefreshToken = AppAuthTicket.RefreshToken
            };
            var stringContent = JsonConvert.SerializeObject(authTicketRequest);

            var response = client.PutAsync(resourceUrl.Url, new StringContent(stringContent, Encoding.UTF8, "application/json")).Result;

            ResponseHelper.EnsureSuccess(response);

            AppAuthTicket = response.Content.ReadAsAsync <AuthTicket>().Result;

            SetRefreshIntervals(false);
        }
Exemplo n.º 7
0
        public static CustomerAuthenticationProfile Authenticate(CustomerUserAuthInfo customerUserAuthInfo,
                                                                 int tenantId, int siteId)
        {
            var resourceUrl = CustomerAuthTicketUrl.CreateUserAuthTicketUrl().Url;


            var client = new HttpClient {
                BaseAddress = new Uri(GetAuthUrl(tenantId))
            };

            client.DefaultRequestHeaders.Add(Headers.X_VOL_SITE, siteId.ToString());

            var stringContent = JsonConvert.SerializeObject(customerUserAuthInfo);

            AppAuthenticator.AddHeader(client);

            var response = client.PostAsync(resourceUrl, new StringContent(stringContent, Encoding.UTF8, "application/json")).Result;

            ResponseHelper.EnsureSuccess(response);


            return(SetUserAuth(response.Content.ReadAsStringAsync().Result, AuthenticationScope.Customer, tenantId, siteId));
        }
Exemplo n.º 8
0
        public static async Task <AuthenticationProfile> RefreshUserAuthTicketAsync(AuthTicket authTicket, int?id = null)
        {
            var resourceUrl = GetResourceRefreshUrl(authTicket, id);

            var client = new HttpClient {
                BaseAddress = new Uri(AppAuthenticator.Instance.BaseUrl)
            };

            AppAuthenticator.AddHeader(client);

            if (authTicket.SiteId.HasValue)
            {
                client.DefaultRequestHeaders.Add(Headers.X_VOL_SITE, authTicket.SiteId.Value.ToString());
            }

            var stringContent = JsonConvert.SerializeObject(authTicket);
            var response      = client.PutAsync(resourceUrl, new StringContent(stringContent, Encoding.UTF8, "application/json")).Result;

            ResponseHelper.EnsureSuccess(response);

            var userInfo = SetUserAuth(response.Content.ReadAsStringAsync().Result, authTicket.AuthenticationScope);

            return(userInfo);
        }