从ASP.NET Core 2.0到2.1的更改
我写了一篇有关迁移到ASP.NET Core 2.1的文章,但是似乎从Visual Studio创建新的ASP.NET Core MVC应用程序时创建的代码库也已更改。
正如我简要检查过的那样,主要是安全更改。
本节描述了代码库从ASP.NET Core 2.0 MVC到ASP.NET Core 2.1 MVC的变化。
有关详细信息,请参阅以下内容。
- 从ASP.NET Core 2.0迁移到2.1
ASP.NET Core 2.0代码库更改
更改描述如下。
注释的代码是旧的代码库。
Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | namespace WebApp001 { public class Program { public static void Main(string[] args) { //BuildWebHost(args).Run(); CreateWebHostBuilder(args).Build().Run(); } //public static IWebHost BuildWebHost(string[] args) => // WebHost.CreateDefaultBuilder(args) // .UseStartup<Startup>() // .Build(); public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>(); } } |
启动文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; //2.1 コードベース追加 using Microsoft.AspNetCore.Mvc; //2.1 コードベース追加 using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace WebApp001 { public class Startup { public void ConfigureServices(IServiceCollection services) { //GDPR 対応のため //https://docs.microsoft.com/en-us/aspnet/core/security/gdpr?view=aspnetcore-2.1 services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); //services.AddMvc(); services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_2_1); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); //2.1 コードベースでは、UseBrowserLink は削除 //app.UseBrowserLink(); } else { app.UseExceptionHandler("/Home/Error"); //2.1 コードベース追加 app.UseHsts(); } app.UseHttpsRedirection(); //2.1 コードベース追加 app.UseStaticFiles(); app.UseCookiePolicy();//2.1 コードベース追加 app.UseMvc(); } } } |
UseHttpsRedirection
UseHttpsRedirection强制将HTTP请求重定向到HTTPS。
但是,仅当存在HTTPS端口定义时,才会发生重定向。
如果未定义
端口,将输出以下警告。
Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware:警告:无法确定用于重定向的https端口。
使用
代码定义端口时,请按以下说明在ConfigureServices方法中对其进行描述。
启动文件
1 2 3 4 | services.AddHttpsRedirection(options => { options.HttpsPort = 8081; }); |
对于Visual Studio IIS Express环境,将引用launchSettings.json中的iisSettings.iisExpress.sslPort的值。
您还可以使用ASPNETCORE_HTTPS_PORT环境变量定义端口号。
其他变化
从ASP.NET Core 2.0迁移到2.1
还具有其他更改的详细信息。
其他大多数更改是安全更新,例如身份验证。
将来其他部分将逐渐迁移,因此我们计划在那时对其进行描述。