.NET

7 mar, 2018

ASP.NET Core 2.1: instalando o Preview 1 e suporte a HTTPS

Publicidade

Recentemente foi disponibilizado oficialmente o Preview 1 do .NET Core 2.1 e do ASP.NET Core 2.1. Maiores informações a respeito podem ser encontradas nos blogs oficiais da Microsoft:

Com este novo artigo dou início a uma série cobrindo as novidades do ASP.NET Core 2.1. Este primeiro traz informações sobre a instalação do Preview 1 do .NET Core 2.1, bem como do suporte a HTTPS presente nesta versão mais recente do ASP.NET Core.

E como o assunto deste artigo é ASP.NET Core, deixo aqui um convite.

Dia 15/03/2018 (quinta-feira) às 21h30 – horário de Brasília – teremos mais um hangout no Canal .NET. O assunto desta vez será o deployment de aplicações ASP.NET Core no Azure utilizando para isto o VSTS (Visual Studio Team Services). A transmissão acontecerá via YouTube em um link a ser disponibilizado em breve. Para efetuar a sua inscrição acesse a página do evento no Facebook ou então o Meetup.

Instalando o Preview 1 do .NET Core 2.1

A instalação do Preview 1 do .NET Core 2.1 pode ser obtida através do seguinte link:

Na próxima imagem está a tela inicial do instalador:

Ao executar o comando dotnet –version, após a instalação será exibida a versão 2.1.300-preview1:

Para os testes realizados neste artigo foi necessário instalar também o Preview 7 da versão 15.6 do Visual Studio 2017:

A imagem a seguir mostra que este Preview do Visual Studio já suporta o ASP.NET Core 2.1:

Suporte a HTTPS

A adoção do protocolo HTTPS em aplicações tem se tornado uma prática cada vez mais frequente dentro do desenvolvimento Web. Considerando toda a preocupação atual com a segurança das informações, browsers como Firefox e Chrome estão inclusive preparados para a exibição de alertas durante o acesso a sites considerados como desprotegidos.

Em projetos criados com o ASP.NET Core 2.1 temos agora o uso de HTTPS ativado por default. A instalação do SDK do .NET Core 2.1 prevê, inclusive, a criação de um certificado para desenvolvimento, conforme indicado na próxima imagem (referente à geração de um primeiro projeto do tipo Web API e baseado neste novo release):

Ao executar a aplicação com o comando dotnet run aparecerá uma indicação de uso das portas 5000 e 5001 para o processamento de solicitações HTTP:

  • Haverá um redirecionamento automático da porta 5000 (que não emprega HTTPS) para a 5001;
  • Foi habilitada na porta 5001 a utilização de HTTPS.

Um alerta será exibido ao efetuar um primeiro teste de acesso à esta API via Firefox:

A adição de uma exceção para o endereço https://localhost:5001 permitirá então o envio de solicitações às diferentes Actions desta aplicação de testes:

E com tudo isso, certamente muitos devem estar se perguntando: o que mudou em termos de código?

Analisando a classe Startup é possível observar:

  • Uma chamada ao método UseHttpsRedirection em Configure, a fim de ativar o middleware de redirecionamento;
  • Já a invocação do método UseHsts acionará em ambiente de produção no middleware que habilita o uso do protocolo HSTS (HTTP Strict Transport Security). Esta especificação indica que uma aplicação poderá ser acessada apenas via HTTPS.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;

namespace ExemploAPI
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseMvc();
        }
    }
}

Por fim, temos na imagem a seguir um exemplo de aplicação MVC executando a partir do Visual Studio 2017 e com o protocolo HTTPS ativado:

Detalhes adicionais sobre a utilização de HTTPS com o ASP.NET Core 2.1 podem ser encontrados no seguinte artigo:

Referências