亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

基于 .Net Core 中的 appSettings 使用 Cors

基于 .Net Core 中的 appSettings 使用 Cors

C#
一只名叫tom的貓 2021-06-25 18:04:20
我正在將 .net 4.5.2 項目更新為 .Net 核心 web api。現在,Cors 根據 appSetting 值設置如下CorsAllowAll:if ((ConfigurationManager.AppSettings["CorsAllowAll"] ?? "false") == "true"){    appBuilder.UseCors(CorsOptions.AllowAll);}else{    ConfigureCors(appBuilder);}private void ConfigureCors(IAppBuilder appBuilder){    appBuilder.UseCors(new CorsOptions    {    PolicyProvider = new CorsPolicyProvider    {        PolicyResolver = context =>        {           var policy = new CorsPolicy();           policy.Headers.Add("Content-Type");           policy.Headers.Add("Accept");           policy.Headers.Add("Auth-Token");           policy.Methods.Add("GET");           policy.Methods.Add("POST");           policy.Methods.Add("PUT");           policy.Methods.Add("DELETE");           policy.SupportsCredentials = true;           policy.PreflightMaxAge = 1728000;           policy.AllowAnyOrigin = true;           return Task.FromResult(policy);        }    }    });}如何在 .net core 中實現相同的目標?不幸的是,我不會知道每個環境的 URL。但我知道對于本地、DEV 和 QA 環境,appSettingCorsAllowAll是真的。但是在 UAT 和 PROD 環境中它會是假的。更新 我的 appSettings.json 如下所示:"AppSettings": {    ...    "CorsAllowAll": true     ...  }
查看完整描述

2 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

在ConfigureServices方法,定義了兩個政策即CorsAllowAll與CorsAllowSpecific


services.AddCors(options =>

            {

                options.AddPolicy("CorsAllowAll",

                    builder =>

                    {

                        builder

                        .AllowAnyOrigin() 

                        .AllowAnyMethod()

                        .AllowAnyHeader()

                        .AllowCredentials();

                    });                    


                options.AddPolicy("CorsAllowSpecific",

                    p => p.WithHeaders("Content-Type","Accept","Auth-Token")

                        .WithMethods("POST","PUT","DELETE")

                        .SetPreflightMaxAge(new TimeSpan(1728000))

                        .AllowAnyOrigin()

                        .AllowCredentials()

                    ); 

            });

CorsAllowAll可以從IConfigurationStartup.cs 中訪問設置值。根據它的值,可以Configure在調用之前在方法中全局設置定義的策略之一app.UseMvc()。


//Read value from appsettings

var corsAllowAll = Configuration["AppSettings:CorsAllowAll"] ?? "false";

app.UseCors(corsAllowAll == "true"? "CorsAllowAll" : "CorsAllowSpecific");


查看完整回答
反對 回復 2021-06-27
  • 2 回答
  • 0 關注
  • 467 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號