Browse Source

Enable CORS for the app template

pull/1557/head
Halil İbrahim Kalkan 7 years ago
parent
commit
6bc918a1b4
  1. 30
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs
  2. 3
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json
  3. 31
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs
  4. 5
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json
  5. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs
  6. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json
  7. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs
  8. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json

30
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs

@ -1,4 +1,6 @@
using System.IO;
using System;
using System.IO;
using System.Linq;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Hosting;
@ -27,6 +29,8 @@ namespace MyCompanyName.MyProjectName
)]
public class MyProjectNameHttpApiHostModule : AbpModule
{
private const string DefaultCorsPolicyName = "Default";
public override void ConfigureServices(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
@ -38,6 +42,7 @@ namespace MyCompanyName.MyProjectName
ConfigureLocalization();
ConfigureVirtualFileSystem(context);
ConfigureRedis(context, configuration, hostingEnvironment);
ConfigureCors(context, configuration);
}
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
@ -116,10 +121,33 @@ namespace MyCompanyName.MyProjectName
}
}
private void ConfigureCors(ServiceConfigurationContext context, IConfigurationRoot configuration)
{
context.Services.AddCors(options =>
{
options.AddPolicy(DefaultCorsPolicyName, builder =>
{
builder
.WithOrigins(
configuration["App:CorsOrigins"]
.Split(",", StringSplitOptions.RemoveEmptyEntries)
.Select(o => o.RemovePostFix("/"))
.ToArray()
)
.SetIsOriginAllowedToAllowWildcardSubdomains()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
app.UseCors(DefaultCorsPolicyName);
app.UseVirtualFiles();
app.UseAuthentication();
if (MultiTenancyConsts.IsEnabled)

3
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json

@ -1,4 +1,7 @@
{
"App": {
"CorsOrigins": "https://*.MyProjectName.com,http://localhost:4200"
},
"ConnectionStrings": {
"Default": "Server=localhost;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true"
},

31
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs

@ -1,8 +1,11 @@
using System.IO;
using System;
using System.IO;
using System.Linq;
using Localization.Resources.AbpUi;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using MyCompanyName.MyProjectName.EntityFrameworkCore;
using MyCompanyName.MyProjectName.Localization;
@ -33,6 +36,8 @@ namespace MyCompanyName.MyProjectName
)]
public class MyProjectNameIdentityServerModule : AbpModule
{
private const string DefaultCorsPolicyName = "Default";
public override void ConfigureServices(ServiceConfigurationContext context)
{
var hostingEnvironment = context.Services.GetHostingEnvironment();
@ -78,7 +83,7 @@ namespace MyCompanyName.MyProjectName
Configure<AppUrlOptions>(options =>
{
options.Applications["MVC"].RootUrl = configuration["AppSelfUrl"];
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
});
Configure<BackgroundJobOptions>(options =>
@ -98,12 +103,32 @@ namespace MyCompanyName.MyProjectName
.AddDataProtection()
.PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys");
}
}
context.Services.AddCors(options =>
{
options.AddPolicy(DefaultCorsPolicyName, builder =>
{
builder
.WithOrigins(
configuration["App:CorsOrigins"]
.Split(",", StringSplitOptions.RemoveEmptyEntries)
.Select(o => o.RemovePostFix("/"))
.ToArray()
)
.SetIsOriginAllowedToAllowWildcardSubdomains()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
app.UseCors(DefaultCorsPolicyName);
app.UseCorrelationId();
app.UseVirtualFiles();
app.UseAuthentication();

5
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json

@ -1,5 +1,8 @@
{
"AppSelfUrl": "https://localhost:44301",
"App": {
"SelfUrl": "https://localhost:44301",
"CorsOrigins": "https://*.MyProjectName.com,http://localhost:4200"
},
"ConnectionStrings": {
"Default": "Server=localhost;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true"
},

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs

@ -81,7 +81,7 @@ namespace MyCompanyName.MyProjectName.Web
{
Configure<AppUrlOptions>(options =>
{
options.Applications["MVC"].RootUrl = configuration["AppSelfUrl"];
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
});
}

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json

@ -1,5 +1,7 @@
{
"AppSelfUrl": "https://localhost:44302",
"App": {
"SelfUrl": "https://localhost:44302"
},
"RemoteServices": {
"Default": {
"BaseUrl": "https://localhost:44300/"

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs

@ -79,7 +79,7 @@ namespace MyCompanyName.MyProjectName.Web
{
Configure<AppUrlOptions>(options =>
{
options.Applications["MVC"].RootUrl = configuration["AppSelfUrl"];
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
});
}

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json

@ -1,5 +1,7 @@
{
"AppSelfUrl": "https://localhost:44303",
"App": {
"SelfUrl": "https://localhost:44303"
},
"ConnectionStrings": {
"Default": "Server=localhost;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true"
},

Loading…
Cancel
Save