Example #1
0
        static async Task Main(string[] args)
        {
            try
            {
                Log.Debug("Starting execution");

                // var targetIp = "https://*****:*****@"{ ""user"" : ""*****@*****.**"", ""password"": ""123456""}", Encoding.UTF8, MediaTypeNames.Application.Json);
                var grpcChannelOptions = GetChannelOptions(unsafeHttpClient);
                using var channel = GrpcChannel.ForAddress(targetIp, grpcChannelOptions);

                // var response = await grpcChannelOptions.HttpClient.PostAsync($"{targetIp}/Jwt/Authenticate", authentication);
                // var authenticationValue = await response.Content.ReadAsStringAsync();
                // var authenticationModel = JsonSerializer.Deserialize<JwtAuthenticationResult>(authenticationValue, new JsonSerializerOptions(){PropertyNameCaseInsensitive = true});
                // var token = authenticationModel.AccessToken;
                // Console.WriteLine(token);
                // // var token =
                // //     "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiYWRtaW5AYWRtaW4uY29tIiwiYXVkIjoiUEMgUmVtb3RlIDIiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJhZG1pbmlzdHJhdG9yIiwiZXhwIjoxNjI1NzIxMzQ5LCJpc3MiOiJQQyBSZW1vdGUgMiJ9.kyQY4B-ZvfsIaBEtd-bGz-0GjrDOlbZwPsJ1zza8zvjwTJJIZ7AvMTLxRzrx1QuQSX45K-_ktrZd7jzr4I-haA";
                //
                // var requestMessage = new HttpRequestMessage(HttpMethod.Post, $"{targetIp}/Jwt/TokenVerify");
                // requestMessage.Headers.Add("Authorization", $"Bearer " + token);
                // var testResponse = await grpcChannelOptions.HttpClient.SendAsync(requestMessage);
                // var testReply = await testResponse.Content.ReadAsStringAsync();
                // Console.WriteLine($"{(int)testResponse.StatusCode} => {testReply}");
                //
                // return;
                var client = new DesktopIntegrationService.DesktopIntegrationServiceClient(channel);

                Log.Info("Executing shutdown");
                await client.ShutDownDelayedAsync(new ShutdownDelayedRequest()
                {
                    Seconds = 60
                });

                await Task.Delay(5000);

                Log.Info("Execution shutdown abort");
                await client.AbortShutDownAsync(new AbortShutdownRequest());

                Log.Info("Execution complete.");
            }
            catch (Exception e)
            {
                Log.Error(e.ToString());
            }
        }
Example #2
0
        public static GrpcChannel Create(HostEndpointAddress address)
        {
            var baseAddress = new Uri(address.FullAddress);

            Log.Trace("Creating channel with connection {Address}", address.FullAddress);

            var channelOptions = new GrpcChannelOptions()
            {
                DisposeHttpClient = true,
                HttpClient        = GrpcWebHttpClientFactory.Create(baseAddress, new AuthenticationSurface(address, new AuthenticationStorage(address)))
            };
            var channel = GrpcChannel.ForAddress(new Uri(address.FullAddress), channelOptions);

            return(channel);
        }