Skip to main content

Song of the Paddle Forum : : The call of the Open Canadian Canoe - Home http://www.songofthepaddle.co.uk

OpenIdConnect through a proxy

1 min read

Having set up OpenIdConnect in a dotnet core project using services.AddOpenIdConnect the log in proces is kiked of in some method of the application via the call to the base controller Challenge(OpenIdConnectDefaults.AuthenticationScheme)

            if (!HttpContext.User.Identity.IsAuthenticated)
            {
                return Challenge(OpenIdConnectDefaults.AuthenticationScheme);
            }


Works fine in development. Fails in production because prod goes through a proxy.
How do you set that proxy?


Use the followng:

            .AddOpenIdConnect(options =>
            {
                if (environment != "DEV")             
  {                    var proxy = new WebProxy(proxyUrl); 
                  options.BackchannelHttpHandler = new HttpClientHandler() 
                  {                        Proxy = proxy                   
};               
}
options ......

Not documented ANYWHERE!

 

Sunday Bike run bike

1 min read

 

 

 Cycle to wooton roundabout and back 

 

Route map for Martins To Roundabout by Peter Marshall on plotaroute.com

 

Route map for V Short Run by Peter Marshall on plotaroute.com

Down hill and back up

Route map for Martins Down Hill And Back by Peter Marshall on plotaroute.com

Call Service Fabric endpoint internally

1 min read

        private async Task CallServiceAsync()
        {
            string schedulerServiceName = "fabric:/DataServices/Scheduler";
            var resolver = ServicePartitionResolver.GetDefault();
            var partition = await resolver.ResolveAsync(new Uri(schedulerServiceName), ServicePartitionKey.Singleton, CancellationToken.None);
            var endpoints = JObject.Parse(partition.GetEndpoint().Address)["Endpoints"];
            var endpoint = endpoints[""].ToString().TrimEnd('/');
            string method = "/api/scheduler/classes/sync";
            var client = new HttpClient();
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var getTask = client.GetAsync(endpoint + method);
            var msg = await getTask;
        }

Call Service Fabric endpoint internally

1 min read

        private async Task CallServiceAsync()
        {
            string schedulerServiceName = "fabric:/DataServices/Scheduler";
            var resolver = ServicePartitionResolver.GetDefault();
            var partition = await resolver.ResolveAsync(new Uri(schedulerServiceName), ServicePartitionKey.Singleton, CancellationToken.None);
            var endpoints = JObject.Parse(partition.GetEndpoint().Address)["Endpoints"];
            var endpoint = endpoints[""].ToString().TrimEnd('/');
            string method = "/api/scheduler/classes/sync";
            var client = new HttpClient();
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var getTask = client.GetAsync(endpoint + method);
            var msg = await getTask;
        }