首页 > 其他分享 >Net7配置跨域和部分跨域支持

Net7配置跨域和部分跨域支持

时间:2023-08-14 15:45:41浏览次数:42  
标签:http 跨域 app 配置 Net7 options localhost 策略

跨域策略应该不算陌生,是浏览器的同源策略做的限制,下面基于后端开发来完成跨域的配置和策略

一:全局跨域支持

 /// <summary>
 /// 跨域
 /// </summary>
 public static class CorsExtension
 {
     /// <summary>
     /// 配置跨域策略
     /// </summary>
     /// <param name="services"></param>
     public static void AddCorsExt(this IServiceCollection services)
     {
         //中间件解决跨域问题
         services.AddCors(options =>
         {
             // allcore: 策略名称
             options.AddPolicy("allcore", corsBuilder =>
             {
                 corsBuilder.AllowAnyHeader()
                            .AllowAnyOrigin()
                            .AllowAnyMethod();
             });
         });
     }

     /// <summary>
     /// 选择不同的跨域策略
     /// </summary>
     /// <param name="app"></param>
     public static void UseCorsExt(this WebApplication app)
     {
         app.UseCors("allcore");
     }
 }

二:部分跨域支持

//首先获取到配置里面的CorsUrl,可以按照你自己的规则操作
//比如:"CorsUrls": "http://localhost:8081,http://localhost:8080,http://localhost:9980,http://127.0.0.1:9980,http://data.mac.com",
string corsUrls = Configuration["CorsUrls"];

services.AddCors(options =>
 {
     options.AddDefaultPolicy(
         builder =>
         {
             builder.WithOrigins(corsUrls.Split(","))
             //添加预检请求过期时间
              .SetPreflightMaxAge(TimeSpan.FromSeconds(2520))
             //如果不需要跨域请注释掉.AllowCredentials()或者增加跨域策略
             .AllowCredentials()
             .AllowAnyHeader().AllowAnyMethod();
         });
 });

然后就是Use了,这里很关键的是和Auth的顺序,如果先鉴权后才识别跨域,那鉴权没有意义,所以,应该顺序在auth前面

//UseCors,UseAuthenticationg两个位置的顺序很重要 
   app.UseCors();
   app.UseAuthentication();
   app.UseAuthorization();

 

标签:http,跨域,app,配置,Net7,options,localhost,策略
From: https://www.cnblogs.com/SevenWang/p/17628807.html

相关文章

  • Nginx 基本原理与最小配置
    文章和代码已经归档至【Github仓库:<https://github.com/timerring/front-end-tutorial>】或者公众号【AIShareLab】回复nginx也可获取。目录结构进入Nginx的主目录有如下文件夹client_body_tempconffastcgi_temphtmllogsproxy_tempsbinscgi_tempuwsgi_temp其中以_temp结......
  • VM虚拟机三种网络配置详解(桥接、NAT、仅主机)
    VM虚拟机三种网络配置详解(桥接、NAT、仅主机)链接在学习网络配置之前,需要搞明白有关于网络的一些基本概念,什么是ip,子网掩码,网段,网关?这里只做最简单的解释,实际上远远不止这些。网络名词ip在现实生活中,这么大的一个中国,物流怎么能清楚的找到需要配送的终点,靠的就是地址。在互......
  • Net7中Swagger增加注释
    Swagger增加注释其实很简单右键项目,属性勾选文档文件即可 然后代码配置路径:ApiVersions是版本,可以忽略并写死services.AddSwaggerGen(option=>{foreach(varversionintypeof(ApiVersions).GetEnumNames()){option.SwaggerDoc(version,newOpenApi......
  • springboot开启prometheus可采集的指标配置
    1、引包<!--实现对Actuator的自动化配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>......
  • Angular如何创建路由以及如何配置路由导航
    废话不多说直接进入正题,首先要创建好项目。第一步:安装Angular路由输入以下指令npminstall@angular/router第二部:通过指令创建Angular路由守卫nggguardguards/auth(自定义名字)第二部:在module文件里面导入①路由导航组件②其他类组件,之后再NgModule({declarations:......
  • Windows服务器管理技巧:多用户登录设置、开启防火墙与SSH远程登录配置指南
    WindowsServer服务器管理技巧:对于使用WindowsServer服务器开发人员或者运维人员初学者来说,可能会遇到很多问题,比如:如何设置允许多用户同时登录服务器?如何开启服务器防火墙?Windows如何配置SSH远程登录?等等,如果遇到了这些问题,来看看这篇文章就能解决啦!一、如何设置允许多用户同时......
  • Anaconda+PyCharm+Pytorch/tensorflow环境配置个人总结
    Anaconda是一个非常方便的python版本管理工具,可以很方便地切换不同版本的Python进行测试。同时不同版本之间也不存在相互的干扰。PyCharm是一款常见的PythonIDE,pytorch和TensorFlow是目前两个主流的深度学习框架。Anaconda安装前往官方网址下载最新版即可,安装教程 PyCharm......
  • IIS 请求筛选模块被配置为拒绝包含双重转义序列的请求。
    方法1:web.config内容如下:<?xmlversion="1.0"encoding="UTF-8"?><configuration><system.webServer><security><requestFilteringallowDoubleEscaping="true"/></security></system.webServer&g......
  • Linux文件实时同步配置
    今天接到需求说要实现mysql与指定目录的文件实时双向热备,mysql的上篇已经解决,linux文件的在这篇展开讨论。Linux主机之间文件实时自动同步备份,使用rsync+inotify组合的方式来实现,避免由于硬件或者软件导致的Linux系统死机或损坏造成的损失。一、rsync+inotify简介......
  • Linux 配置Node环境变量[通俗易懂]
    大家好,又见面了,我是你们的朋友全栈君。修改/etc/profile文件,在末尾添加以下内容exportNODE_HOME=/usr/local/node//Node所在路径exportPATH=$NODE_HOME/bin:$PATH复制修改完成后需要重新登陆才能生效,也可以执行命令source/etc/profile或者./etc/profile来生效(注意......