ASP.NET Core 6 MVC:仅在授权策略上进行 HttpPost 时出现跨域错误
创始人
2024-09-15 01:30:54
0

要解决“ASP.NET Core 6 MVC:仅在授权策略上进行 HttpPost 时出现跨域错误”的问题,可以按照以下步骤进行操作:

  1. 确保在 Startup.cs 文件中添加了跨域配置。在 ConfigureServices 方法中添加以下代码:
services.AddCors(options =>
{
    options.AddPolicy("AllowAllOrigins",
        builder =>
        {
            builder.AllowAnyOrigin()
                   .AllowAnyMethod()
                   .AllowAnyHeader();
        });
});
  1. Configure 方法中使用 UseCors 中间件来启用跨域支持:
app.UseCors("AllowAllOrigins");
  1. 在需要进行跨域的控制器或方法上添加 [EnableCors("AllowAllOrigins")] 属性。

  2. 确保在进行 HttpPost 请求时,使用了正确的授权策略。在授权策略中添加以下代码:

options.AddPolicy("RequireAuthenticatedUser",
    policy =>
    {
        policy.RequireAuthenticatedUser();
        policy.Build();
    });
  1. 在需要进行授权的控制器或方法上添加 [Authorize("RequireAuthenticatedUser")] 属性。

以下是一个完整的示例代码:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

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

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddPolicy("AllowAllOrigins",
                    builder =>
                    {
                        builder.AllowAnyOrigin()
                               .AllowAnyMethod()
                               .AllowAnyHeader();
                    });
            });

            services.AddControllers();

            services.AddAuthorization(options =>
            {
                options.AddPolicy("RequireAuthenticatedUser",
                    policy =>
                    {
                        policy.RequireAuthenticatedUser();
                        policy.Build();
                    });
            });
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseCors("AllowAllOrigins");

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }
}

确保按照以上步骤进行操作,并根据具体情况进行相应的修改,以解决“仅在授权策略上进行 HttpPost 时出现跨域错误”的问题。

相关内容

热门资讯

重大发现!荔枝竞技通用辅助器,... 重大发现!荔枝竞技通用辅助器,科乐填大坑辅助码(有挂秘诀辅助开挂挂);无需打开直接搜索微信(1367...
教程攻略!新海豚辅助工具,九酷... 您好:这款新海豚辅助工具游戏是可以开挂的,确实是有挂的,很多玩家在这款新海豚辅助工具游戏中打牌都会发...
交流学习经验!新海贝辅助器,决... >>您好:决战卡五星最新辅助确实是有挂的,很多玩家在这款决战卡五星最新辅助游戏中打牌都会发现很多用户...
发现玩家!家乡大贰辅助,嗨动互... >>您好:嗨动互动辅助确实是有挂的,很多玩家在这款嗨动互动辅助游戏中打牌都会发现很多用户的牌特别好,...
玩家必知教程!丽水都来脚本辅助... 玩家必知教程!丽水都来脚本辅助,微信中至有辅助吗(有挂规律开挂辅助工具);无需打开直接搜索加(薇:1...
查到实测辅助!牌乐门黑科技,皇... 查到实测辅助!牌乐门黑科技,皇豪互众辅助软件是干嘛的(有挂规律辅助插件)1、下载安装好牌乐门黑科技,...
重磅来袭!广东潮汕雀友会插件,... 重磅来袭!广东潮汕雀友会插件,葫芦娃辅助修改器下载(有挂功能开挂辅助脚本);无需打开直接搜索薇:13...
玩家爆料!相约十三张辅助,反杀... 相约十三张辅助是一款专注玩家量身打造的游戏记牌类型软件,在相约十三张辅助这款游戏中我们可以记录下每张...
避坑细节!牵手辅助器,微友辅助... 避坑细节!牵手辅助器,微友辅助器免费版(有挂方略辅助开挂下载);无需打开直接搜索薇:13670430...
必备辅助推荐!新超凡手游辅助,... 必备辅助推荐!新超凡手游辅助,心悦踢坑神器软件下载(果真有挂辅助平台);亲,新超凡手游辅助这款游戏原...