c# webapi 处理跨源问题

利用cors中间件处理跨源问题。
首先,什么是跨域(跨源)问题:
是指不同站点之间,使用ajax无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。 这个就是我们常说的同源策略(协议,域名,端口都相同就是同源)
在这里插入图片描述

解决跨域问题:让后端允许自己访问。
工作原理:服务器在返回响应报文的书一样,在响应头设置一个允许的header。
在响应报头添加Access-Control-Allow-Origin标签。从而允许指定域的站点访问当前域上的资源。

c# cors中间件设置指定源允许访问。 —在startup.cs文件中设置

public void ConfigureServices(IServiceCollection services)
{
    //增加cors中间件到应用到服务器中,类似配置服务器
    services.AddCors(options =>
    {
        options.AddPolicy(name: MyAllowSpecificOrigins,
        policy =>
        {
            //设置允许的协议和域名
            //.AllowAnyOrigin() 允许所有源
            policy.WithOrigins("http://example.com",
            "http://www.contoso.com”)
            //设置所允许的请求头
            .AllowAnyHeader() 
            //设置所允许的方法
            .AllowAnyMethod();;
        });
    });
    // services.AddResponseCaching();
    services.AddControllers();
}
//在configure文件中加入 —启用中间件 这句话必须放在userouting之后,useauthorization之前
//这是所有的接口都启用
app.UseCors(MyAllowSpecificOrigins);

c# 使用跨源策略
除了上面的在configure文件中 app.UseCors(MyAllowSpecificOrigins);
直接允许所有的接口都适用中间件外,也能指定接口用哪个跨源策略。
ps:注意这句话必须放在userouting之后,useauthorization之前

这些都是在configureservices中设置完跨源策略之后用的。(可以设置多个跨源策略,命名不同)
1.使用属性跨源

//在控制器里,写路径的地方
// GET api/values 
[EnableCors("AnotherPolicy")] 
[HttpGet] 
public ActionResult<IEnumerable<string>> Get() 
{ 
    return new string[] { "green widget", "red widget" }; 
}

2.通过终结点路由启用

//在configure中调用控制器的地方
endpoints.MapGet("/echo”, 
    context => context.Response.WriteAsync("echo")) 
    .RequireCors(MyAllowSpecificOrigins);

致此:希望大家不要跟我一样懒,且畏惧尝试。respect!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/166853.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【从入门到起飞】JavaSE—IO流(2)字符输入流字符输出流

&#x1f38a;专栏【JavaSE】 &#x1f354;喜欢的诗句&#xff1a;天行健&#xff0c;君子以自强不息。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f33a;字符输入流&#x1f384;空参read方法&#x1f6f8;分…

计算机网络必知必会——传输层TCP

&#x1f4d1;前言 本文主要SpringBoot通过DevTools实现热部署的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日一句&…

软通动力赋能触觉智能打造嵌入式鸿蒙原生系统应用标杆

11月16日&#xff0c;由华为主办的生态伙伴赋能闭门交流会在鸿蒙之城深圳成功举办&#xff0c;触觉智能及众多企业伙伴、华为公司技术及运营专家与开发者朋友们&#xff0c;共同探讨鸿蒙原生应用和元服务带来纯国产化的创新应用变革。会议中&#xff0c;软通动力与深圳触觉智能…

108.firefly-sdk下生成recovery.img

本文主要讲的是如何用命令生成recovery.img sdk本身可以自己生成recovery.img&#xff0c;在sdk的目录下&#xff0c;直接运行build.sh recovery&#xff0c;就可以生成了。 本文一则是想研究一下生成的过程&#xff0c;二则主要的就是要能够自己掌控&#xff0c;能够灵活编译出…

基于 FFmpeg 的跨平台视频播放器简明教程(十一):一种简易播放器的架构介绍

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;一&#xff09;&#xff1a;FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;二&#xff09;&#xff1a;基础知识和解封装&#xff08;demux&#xff09;基于 FFmpeg 的跨平台视频…

生成式大模型的RLHF技术(一):基础

一、概述 大语言模型&#xff08;LLMs&#xff09;在预训练的过程中通常会捕捉数据的特征&#xff0c;而这些训练数据通常既包含高质量的也包含低质量的&#xff0c;因此模型有时会产生不被期望的行为&#xff0c;如编造事实&#xff0c;生成有偏见或有毒的文本&#xff0c;甚至…

商业园区的万能管理法,还怪高级的咧!

随着社会的不断发展和科技的飞速进步&#xff0c;视频监控技术已经成为维护安全、提高效率以及实现智能化管理的关键工具。 在这个信息时代&#xff0c;人们对于安全和管理的需求不断提升&#xff0c;而视频监控系统作为一种强大而灵活的解决方案&#xff0c;正日益受到各行各业…

QQ同步通讯录,详细操作方法来了!

腾讯QQ是一款功能丰富的即时通信软件&#xff0c;能够让用户随时随地与好友保持联系&#xff0c;不受时间和地域限制&#xff0c;受到了广大用户的喜爱和信赖。 为了能够快速添加QQ好友&#xff0c;我们可以通过开启通讯录来实现。那么&#xff0c;qq同步通讯录如何操作呢&…

数字IC前端学习笔记:异步复位,同步释放

相关阅读 数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 异步复位 异步复位是一种常见的复位方式&#xff0c;可以使电路进入一个可知的状态。但是不正确地使用异步复位会导致出现意想不到的错误&#xff0c;复位释放便是…

新生儿奶藓:原因、科普和注意事项

引言&#xff1a; 新生儿奶藓是一种常见的婴儿皮肤问题&#xff0c;通常在生后的头几个月内出现。尽管奶藓对婴儿的健康没有太大影响&#xff0c;但了解其原因、科普相关信息以及采取适当的注意事项是帮助父母更好地照顾婴儿皮肤的关键。本文将深入探讨新生儿奶藓的原因、相关…

【pytorch深度学习 应用篇02】训练中loss图的解读,训练中的问题与经验汇总

文章目录 loss图解析train loss ↘ \searrow ↘ ↗ \nearrow ↗ 先降后升 loss图解析 train loss ↘ \searrow ↘ 不断下降&#xff0c;test loss ↗ \nearrow ↗ 不断上升&#xff1a;原因很多&#xff0c;我是把workers1&#xff0c;batchSize8192train loss ↘ \searro…

【Linux】vscode远程连接ubuntu,含失败解决方案

删除vscode远程连接 打开‪C:\Users\GIGA\.ssh\config文件&#xff0c;GIGA是windows下自己的用户名。 删除‪C:\Users\GIGA\.ssh\config文件里的所有内容&#xff0c;点击保存&#xff1b;然后刷新。 可以看出SSH 远程连接已经被删除了。 vscode远程连接ubuntu 在弹出的…

nginx静态网站部署

Nginx是一个HTTP的web服务器&#xff0c;可以将服务器上的静态文件&#xff08;如HTML、图片等&#xff09;通过HTTP协议返回给浏览器客户端 案例&#xff1a;将ace-master这个静态网站部署到Nginx服务器上 通过Xftp将ace-master到linux服务器/opt/static目录下&#xff0c;为…

Spring高级bean的实例化方法

bean的实例化方法 构造方法 实例化bean第一种&#xff1a;使用默认无参构造函数(常用) 第二种创建bean实例&#xff1a;静态工厂实例化&#xff08;了解&#xff09; 第三种&#xff1a;实例工厂&#xff08;了解&#xff09;与FactoryBean&#xff08;实用&#xff09;

这些好用的录屏专家,你都知道吗?(干货)

在数字时代&#xff0c;录制屏幕已经成为沟通、教育和创作的重要工具。无论您是一位教育者、企业家还是内容创作者&#xff0c;能够熟练地使用录屏软件将帮助您传达信息和创作内容。在本文中&#xff0c;我们将介绍三款优秀的录屏专家&#xff0c;以帮助您找到最适合自己需求的…

如何通过算法模型进行数据预测

当今数据时代背景下更加重视数据的价值&#xff0c;企业信息化建设会越来越完善&#xff0c;越来越体系化&#xff0c;以数据说话&#xff0c;通过数据为企业提升渠道转化率、改善企业产品、实现精准运营&#xff0c;为企业打造自助模式的数据分析成果&#xff0c;以数据驱动决…

springboot学习笔记

目录 概述 常见的SSM搭建项目弊端 什么是springboot 特点 1.简化部署 2.简化配置&#xff0c;注解代替xml 3.简化依赖配置 4.应用监控 springboot与springmvc&#xff0c;springcloud关系 创建springboot项目 spring4提供的注解 Spring的发展 Java配置 1.核心注解…

构造函数,原型对象,实例对象

1.构造函数、原型对象、实例对象三者分别是什么&#xff1f; 构造函数&#xff1a;用来创建对象的函数&#xff0c;创建实例对象的模板 。构造函数的函数名尽量首字母大写(为了区分普通函数和构造函数)原型对象&#xff1a;每一个函数在创建的时候&#xff0c;系统都会给分配一…

wpf devexpress 绑定数据编辑器

定义视图模型 打开前一个项目 打开RegistrationViewModel.cs文件添加如下属性到RegistrationViewModel类 [POCOViewModel] public class RegistrationViewModel {public static RegistrationViewModel Create() {return ViewModelSource.Create(() > new RegistrationVie…

振弦式渗压计的安装方式及注意要点

振弦式渗压计的安装方式及注意要点 振弦式渗压计是一种高精度、高效率的地下水位测量仪器。它可以测量地下水位的高度&#xff0c;计算地下水的压力&#xff0c;从而推算出地下水的流量。对于地下水资源管理和保护、治理工程等方面具有非常重要的意义。在安装振弦式渗压计时&a…
最新文章