/// <summary> /// Starts listening at the specified port. /// </summary> public void Start() { Startup.Listener = this; m_host = new WebHostBuilder(); #if NETSTANDARD2_0 HttpsConnectionAdapterOptions httpsOptions = new HttpsConnectionAdapterOptions(); httpsOptions.CheckCertificateRevocation = false; httpsOptions.ClientCertificateMode = ClientCertificateMode.NoCertificate; httpsOptions.ServerCertificate = m_serverCert; httpsOptions.SslProtocols = SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12; m_host.UseKestrel(options => { options.Listen(IPAddress.Any, m_uri.Port, listenOptions => { listenOptions.NoDelay = true; listenOptions.UseHttps(httpsOptions); }); }); #else HttpsConnectionFilterOptions httpsOptions = new HttpsConnectionFilterOptions(); httpsOptions.CheckCertificateRevocation = false; httpsOptions.ClientCertificateMode = ClientCertificateMode.NoCertificate; httpsOptions.ServerCertificate = m_serverCert; httpsOptions.SslProtocols = SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12; m_host.UseKestrel(options => { options.NoDelay = true; options.UseHttps(httpsOptions); }); #endif m_host.UseContentRoot(Directory.GetCurrentDirectory()); m_host.UseStartup <Startup>(); m_host.Start(Utils.ReplaceLocalhost(m_uri.ToString())); }
internal static IWebHost CreateWebHost(HttpsConnectionFilterOptions httpsOptions) { var webHostBuilder = new WebHostBuilder() .UseLoggerFactory(_loggerFactory) .UseConfiguration(Configuration) .UseKestrel(options => { if (httpsOptions != null) { options.UseHttps(httpsOptions); } //options.UseConnectionLogging(); }) .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup <Startup>(); var webHost = webHostBuilder.Build(); var serverAddresses = webHost.ServerFeatures.Get <IServerAddressesFeature>(); string pipeName = _startupOptions.WriteServerUrlsToPipe; if (pipeName != null) { NamedPipeClientStream pipe; try { pipe = new NamedPipeClientStream(".", pipeName, PipeDirection.Out); pipe.Connect(10000); } catch (IOException ex) { _logger.LogCritical(0, ex, Resources.Critical_InvalidPipeHandle, pipeName); throw; } catch (System.TimeoutException ex) { _logger.LogCritical(0, ex, Resources.Critical_PipeConnectTimeOut, pipeName); throw; } var applicationLifetime = webHost.Services.GetService <IApplicationLifetime>(); applicationLifetime.ApplicationStarted.Register(() => Task.Run(() => { using (pipe) { string serverUriStr = JsonConvert.SerializeObject(serverAddresses.Addresses); _logger.LogTrace(Resources.Trace_ServerUrlsToPipeBegin, pipeName, Environment.NewLine, serverUriStr); var serverUriData = Encoding.UTF8.GetBytes(serverUriStr); pipe.Write(serverUriData, 0, serverUriData.Length); pipe.Flush(); } _logger.LogTrace(Resources.Trace_ServerUrlsToPipeDone, pipeName); })); } return(webHost); }
public static IWebHost CreateWebHost(HttpsConnectionFilterOptions httpsOptions) { var webHostBuilder = new WebHostBuilder() .UseLoggerFactory(_loggerFactory) .UseConfiguration(Configuration) .UseKestrel(options => { if (httpsOptions != null) { options.UseHttps(httpsOptions); } //options.UseConnectionLogging(); }) .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup<Startup>(); var webHost = webHostBuilder.Build(); var serverAddresses = webHost.ServerFeatures.Get<IServerAddressesFeature>(); string pipeName = _startupOptions.WriteServerUrlsToPipe; if (pipeName != null) { NamedPipeClientStream pipe; try { pipe = new NamedPipeClientStream(".", pipeName, PipeDirection.Out); pipe.Connect(10000); } catch (IOException ex) { _logger.LogCritical(0, ex, Resources.Critical_InvalidPipeHandle, pipeName); throw; } catch (TimeoutException ex) { _logger.LogCritical(0, ex, Resources.Critical_PipeConnectTimeOut, pipeName); throw; } var applicationLifetime = webHost.Services.GetService<IApplicationLifetime>(); applicationLifetime.ApplicationStarted.Register(() => Task.Run(() => { using (pipe) { string serverUriStr = JsonConvert.SerializeObject(serverAddresses.Addresses); _logger.LogTrace(Resources.Trace_ServerUrlsToPipeBegin, pipeName, Environment.NewLine, serverUriStr); var serverUriData = Encoding.UTF8.GetBytes(serverUriStr); pipe.Write(serverUriData, 0, serverUriData.Length); pipe.Flush(); } _logger.LogTrace(Resources.Trace_ServerUrlsToPipeDone, pipeName); })); } return webHost; }
public static void Main(string[] args) { var configuration = new ConfigurationBuilder() .AddEnvironmentVariables(prefix: "ASPNETCORE_") .Build(); var host = new WebHostBuilder() .UseKestrel(options => { var httpsOptions = new HttpsConnectionFilterOptions { ServerCertificate = new X509Certificate2("SimpleIdServer.pfx") }; options.UseHttps(httpsOptions); }) .UseIISIntegration() .UseContentRoot(Directory.GetCurrentDirectory()) .UseConfiguration(configuration) .UseStartup <Startup>() .Build(); host.Run(); }
public static void Main(string[] args, IApiCallbacks callbacks) { Callbacks = callbacks; var host = new WebHostBuilder() .UseKestrel(options => { var sslOps = new HttpsConnectionFilterOptions(); sslOps.ClientCertificateMode = ClientCertificateMode.RequireCertificate; sslOps.ClientCertificateValidation = CheckClientCertificateLogic.CheckClientCertificate; sslOps.ServerCertificate = new X509Certificate2(@"C:\Repos\selly-uob\client2.pfx", "selly"); options.UseHttps(sslOps); }) .UseUrls("https://client2:5002") .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup <Startup>() .UseApplicationInsights() .Build(); host.Run(); }
public static void Main(string[] args, IApiCallbacks callbacks, IApiConfiguration configuration) { _callbacks = callbacks; _configuration = configuration; var host = new WebHostBuilder() .UseKestrel(options => { var sslOps = new HttpsConnectionFilterOptions(); sslOps.ClientCertificateMode = ClientCertificateMode.AllowCertificate; sslOps.ClientCertificateValidation = CheckClientCertificateLogic.CheckClientCertificate; sslOps.ServerCertificate = new X509Certificate2(Conf.CertificatePath, Conf.CertificatePassword); options.UseHttps(sslOps); }) .UseUrls(Conf.Endpoint) .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup <Startup>() .UseApplicationInsights() .Build(); host.Run(); }
public static void Main(string[] args) { // To launch the application : dotnet run --server.urls=http://*:5000 var configuration = new ConfigurationBuilder() .AddCommandLine(args) .AddEnvironmentVariables(prefix: "ASPNETCORE_") .Build(); var host = new WebHostBuilder() .UseKestrel(options => { var httpsOptions = new HttpsConnectionFilterOptions { ServerCertificate = new X509Certificate2("SimpleIdServer.pfx") }; options.UseHttps(httpsOptions); }) .UseContentRoot(Directory.GetCurrentDirectory()) .UseConfiguration(configuration) .UseStartup <Startup>() .Build(); host.Run(); }
/// <summary> /// Starts listening at the specified port. /// </summary> public void Start() { Startup.Listener = this; m_host = new WebHostBuilder(); HttpsConnectionFilterOptions httpsOptions = new HttpsConnectionFilterOptions(); httpsOptions.CheckCertificateRevocation = false; httpsOptions.ClientCertificateMode = ClientCertificateMode.NoCertificate; httpsOptions.ServerCertificate = m_serverCert; httpsOptions.SslProtocols = SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12; m_host.UseKestrel(options => { options.NoDelay = true; options.UseHttps(httpsOptions); }); m_host.UseContentRoot(Directory.GetCurrentDirectory()); m_host.UseStartup<Startup>(); m_host.Build(); m_host.Start(Utils.ReplaceLocalhost(m_uri.ToString())); }
public static IApplicationBuilder UseKestrelHttps(this IApplicationBuilder app, HttpsConnectionFilterOptions options) { var serverInfo = app.ServerFeatures.Get <IKestrelServerInformation>(); if (serverInfo == null) { return(app); } var prevFilter = serverInfo.ConnectionFilter ?? new NoOpConnectionFilter(); serverInfo.ConnectionFilter = new HttpsConnectionFilter(options, prevFilter); return(app); }
public static void Main(string[] args) { var config = new ConfigurationBuilder() .AddCommandLine(args) .Build(); string startUpClassString = Environment.GetEnvironmentVariable("ANCMTestStartupClassName"); IWebHostBuilder builder = null; if (!string.IsNullOrEmpty(startUpClassString)) { if (startUpClassString == "StartupHTTPS") { // load .\testresources\testcert.pfx string pfxPassword = "******"; if (File.Exists(@".\TestResources\testcert.pfx")) { _x509Certificate2 = new X509Certificate2(@".\TestResources\testcert.pfx", pfxPassword); } else { throw new Exception(@"Certificate file not found: .\TestResources\testcert.pfx of which password should " + pfxPassword); } builder = new WebHostBuilder() .UseConfiguration(config) .UseIISIntegration() .UseKestrel(options => { HttpsConnectionFilterOptions httpsoptions = new HttpsConnectionFilterOptions(); httpsoptions.ServerCertificate = _x509Certificate2; httpsoptions.ClientCertificateMode = ClientCertificateMode.RequireCertificate; httpsoptions.CheckCertificateRevocation = false; options.UseHttps(httpsoptions); }) .UseStartup <Startup>(); } else if (startUpClassString == "StartupCompressionCaching") { builder = new WebHostBuilder() .UseConfiguration(config) .UseIISIntegration() .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup <StartupCompressionCaching>(); } else if (startUpClassString == "StartupNoCompressionCaching") { StartupCompressionCaching.CompressionMode = false; builder = new WebHostBuilder() .UseConfiguration(config) .UseIISIntegration() .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup <StartupCompressionCaching>(); } else if (startUpClassString == "StartupHelloWorld") { builder = new WebHostBuilder() .UseConfiguration(config) .UseIISIntegration() .UseStartup <StartupHelloWorld>(); } else if (startUpClassString == "StartupNtlmAuthentication") { builder = new WebHostBuilder() .UseConfiguration(config) .UseIISIntegration() .UseStartup <StartupNtlmAuthentication>(); } else { throw new System.Exception("Invalid startup class name : " + startUpClassString); } } else { builder = new WebHostBuilder() .UseConfiguration(config) .UseIISIntegration() .UseStartup <Startup>(); } string startupDelay = Environment.GetEnvironmentVariable("ANCMTestStartUpDelay"); if (!string.IsNullOrEmpty(startupDelay)) { Startup.SleeptimeWhileStarting = Convert.ToInt32(startupDelay); } if (Startup.SleeptimeWhileStarting != 0) { Thread.Sleep(Startup.SleeptimeWhileStarting); } string shutdownDelay = Environment.GetEnvironmentVariable("ANCMTestShutdownDelay"); if (!string.IsNullOrEmpty(shutdownDelay)) { Startup.SleeptimeWhileClosing = Convert.ToInt32(shutdownDelay); } // Switch between Kestrel and WebListener for different tests. Default to Kestrel for normal app execution. if (string.Equals(builder.GetSetting("server"), "Microsoft.AspNetCore.Server.WebListener", System.StringComparison.Ordinal)) { if (string.Equals(builder.GetSetting("environment") ?? Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"), "NtlmAuthentication", System.StringComparison.Ordinal)) { // Set up NTLM authentication for WebListener as follows. // For IIS and IISExpress use inetmgr to setup NTLM authentication on the application or // modify the applicationHost.config to enable NTLM. builder.UseWebListener(options => { options.ListenerSettings.Authentication.AllowAnonymous = true; options.ListenerSettings.Authentication.Schemes = AuthenticationSchemes.Negotiate | AuthenticationSchemes.NTLM; }); } else { builder.UseWebListener(); } } else { builder.UseKestrel(); } var host = builder.Build(); AappLifetime = (IApplicationLifetime)host.Services.GetService(typeof(IApplicationLifetime)); string gracefulShutdownDelay = Environment.GetEnvironmentVariable("GracefulShutdownDelayTime"); if (!string.IsNullOrEmpty(gracefulShutdownDelay)) { GracefulShutdownDelayTime = Convert.ToInt32(gracefulShutdownDelay); } AappLifetime.ApplicationStarted.Register( () => Thread.Sleep(1000) ); AappLifetime.ApplicationStopping.Register( () => Thread.Sleep(Startup.SleeptimeWhileClosing / 2) ); AappLifetime.ApplicationStopped.Register( () => { Thread.Sleep(Startup.SleeptimeWhileClosing / 2); Startup.SleeptimeWhileClosing = 0; // All of SleeptimeWhileClosing is used now } ); try { host.Run(); } catch { // ignore } if (Startup.SleeptimeWhileClosing != 0) { Thread.Sleep(Startup.SleeptimeWhileClosing); } }
/// <summary> /// Configure Kestrel to use HTTPS. /// </summary> /// <param name="options"> /// The Microsoft.AspNetCore.Server.KestrelServerOptions to configure. /// </param> /// <param name="httpsOptions"> /// Options to configure HTTPS. /// </param> /// <returns> /// The Microsoft.AspNetCore.Server.KestrelServerOptions. /// </returns> public static KestrelServerOptions UseHttps(this KestrelServerOptions options, HttpsConnectionFilterOptions httpsOptions) { var prevFilter = options.ConnectionFilter ?? new NoOpConnectionFilter(); options.ConnectionFilter = new HttpsConnectionFilter(httpsOptions, prevFilter); return(options); }