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 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));
        }