コード例 #1
0
        public async Task <ActionResult> IndexPOST()
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageCorsSettings))
            {
                return(Unauthorized());
            }

            var model      = new CorsSettingsViewModel();
            var configJson = Request.Form["CorsSettings"].First();

            model.Policies = JsonConvert.DeserializeObject <CorsPolicyViewModel[]>(configJson);

            var corsPolicies = new List <CorsPolicySetting>();

            foreach (var settingViewModel in model.Policies)
            {
                corsPolicies.Add(new CorsPolicySetting
                {
                    Name             = settingViewModel.Name,
                    AllowAnyHeader   = settingViewModel.AllowAnyHeader,
                    AllowAnyMethod   = settingViewModel.AllowAnyMethod,
                    AllowAnyOrigin   = settingViewModel.AllowAnyOrigin,
                    AllowCredentials = settingViewModel.AllowCredentials,
                    AllowedHeaders   = settingViewModel.AllowedHeaders,
                    AllowedMethods   = settingViewModel.AllowedMethods,
                    AllowedOrigins   = settingViewModel.AllowedOrigins,
                    IsDefaultPolicy  = settingViewModel.IsDefaultPolicy
                });
            }

            var corsSettings = new CorsSettings()
            {
                Policies = corsPolicies
            };

            await _corsService.UpdateSettingsAsync(corsSettings);

            await _notifier.SuccessAsync(TH["The CORS settings have updated successfully."]);

            return(View(model));
        }
コード例 #2
0
        public async Task <ActionResult> Index()
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageCorsSettings))
            {
                return(Unauthorized());
            }

            var settings = await _corsService.GetSettingsAsync();

            var list = new List <CorsPolicyViewModel>();

            if (settings?.Policies != null)
            {
                foreach (var policySetting in settings.Policies)
                {
                    var policyViewModel = new CorsPolicyViewModel()
                    {
                        Name             = policySetting.Name,
                        AllowAnyHeader   = policySetting.AllowAnyHeader,
                        AllowedHeaders   = policySetting.AllowedHeaders,
                        AllowAnyMethod   = policySetting.AllowAnyMethod,
                        AllowedMethods   = policySetting.AllowedMethods,
                        AllowAnyOrigin   = policySetting.AllowAnyOrigin,
                        AllowedOrigins   = policySetting.AllowedOrigins,
                        AllowCredentials = policySetting.AllowCredentials,
                        IsDefaultPolicy  = policySetting.IsDefaultPolicy
                    };

                    list.Add(policyViewModel);
                }
            }

            var viewModel = new CorsSettingsViewModel
            {
                Policies = list.ToArray()
            };

            return(View(viewModel));
        }