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.mzph.cn/news/146802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

除了chatGPT网站外,国内有些可以使用的AI网站 文心一言 讯飞星火 豆包 通义千问 人工智能网站 AI网站

2023年随着人工智能技术的不断发展&#xff0c;AI网站如ChatGPT等越来越受到人们的关注。这些网站具有多种作用&#xff0c;可以帮助人们更方便地获取信息、解决问题&#xff0c;甚至进行创作。 首先&#xff0c;AI网站可以提供智能问答服务。与传统的搜索引擎相比&#xff0c…

【Linux】vimrc 配置方案

修改 ~/.vimrc 文件(该文件是用户自己vim的配置文件&#xff0c;可随意修改)。 vim ~/.vimrc 极简版。 "关闭兼容功能 set nocompatible "显示行号 set number "编辑时 backspace 键设置为2个空格 set backspace2 "编辑时 tab设置为4个空格 set tabstop4…

es 算法函数 有点不太懂了没有大神给指点一下

我先说一下我对算法分析的理解 算法函数&#xff0c;我们使用算法函数给指定的数据提高对应的值的方式 比如我现在要给一家酒店排名提高排名&#xff0c;我们可以利用算法函数&#xff0c;提高酒店排名&#xff0c;因为酒店的名称 相关算法的使用场景 在使用的时候出现了这…

CI/CD --git版本控制系统

目录 一、git简介 二、git使用 三、github远程代码仓库 一、git简介 Git特点&#xff1a; 速度简单的设计对非线性开发模式的强力支持&#xff08;允许成千上万个并行开发的分支&#xff09;完全分布式有能力高效管理类似 Linux 内核一样的超大规模项目&#xff08;速度和数…

【有源码】基于asp.net的旅游度假村管理系统C#度假村美食住宿一体化平台源码调试 开题 lw ppt

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…

ChatGPT暂时停止开通puls,可能迎来封号高峰期

前言: 前两日,chat gpt的创始人 San Altman在网上发表了,由于注册的使用量超过了他们的承受能力,为了确保每个人的良好使用体验,chat gpt将暂时停止开通gpt plus。 情况: 前段时间好像出现了官网崩溃的情况,就连api key都受到了影响,所以现在就开始了暂时停止puls的注…

redis+python 提取免费代理ip/验证/留接口

前言: 对于网络上的一些免费代理ip,http的有效性还是不错的;但是,https的可谓是凤毛菱角; 正巧,有一个web可以用http访问,于是我就想到不如直接拿着免费的HTTP代理去做这个! 思路: 1.单页获取ipporttime (获取time主要是为了后面使用的时候,依照时效可以做文章) 2.整页验证(…

解锁编程潜能:探索亚马逊CodeWhisperer,打造编程世界的声音引导者

文章目录 前言一、什么是 Amazon CodeWhisperer&#xff1f;二、如何使用CodeWhisperer&#xff1f;安装CodeWhisperer插件配置CodeWhisperer生成注释和文档 总结 前言 随着CHATGPT的一声巨响&#xff0c;大语言模型已经成为了一个备受瞩目的创新应用。亚马逊云科技作为全球领…

二叉树的遍历(非递归版)

文章目录 二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。 点击跳转到网站。 二叉树的前序遍历 用递归实…

frp新版本frp_0.52.3设置

服务端 frps.toml cp /root/frp/frpc /usr/bin #bindPort 7000 bindPort 7000# 如果指定了“oidc”&#xff0c;将使用 OIDC 设置颁发 OIDC&#xff08;开放 ID 连接&#xff09;令牌。默认情况下&#xff0c;此值为“令牌”。auth.method “token” auth.method "…

想要精通算法和SQL的成长之路 - 摩尔投票法的运用

想要精通算法和SQL的成长之路 - 摩尔投票法的运用 前言一. 多数元素1.1 摩尔投票法 二. 多数元素II2.1 分析 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 多数元素 原题链接 1.1 摩尔投票法 简单来说&#xff0c;假设数组 num 的众数是 x&#xff0c;数组长度为n。 有…

人工智能基础_机器学习044_逻辑回归代码实现与手动计算概率---人工智能工作笔记0084

上面我们已经把逻辑回归的公式,以及,公式对应的图形都画画出来了,然后我们再来看看 如何用代码实现 可以看到上面是代码,咱们自己去写一下 import numpy as np from sklearn.linear_model import LogistieRegression from sklearn import datasets # 训练数据和测试数据拆分…

【Proteus仿真】【Arduino单片机】DS1302时钟

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用PCF8574、LCD1602液晶、DS1302等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示时间日期。 二、软件设计 /* 作者&#xff1a;…

Linux命令之文件管理相关命令

文件操作 Linux系统中常见文件分为普通文件和目录文件。 1.pwd----显示当前工作目录的绝对路径 pwd通常不添加参数&#xff0c;直接在命令行中使用 [itheimalocalhost ~]$ pwd #打印当前工作目录 2.cd--切换目录 [itheimalocalhost ~]$ cd ./public #切换工作…

按键精灵实现打开QQ自动化脚本

以下是基于按键精灵实现的一个打开QQ的功能&#xff0c;其基本的思路是&#xff1a; 1. 滑屏找到图标&#xff1b; 2. 点击图标&#xff1b; 3. 进入登录界面&#xff0c;检测登录按钮&#xff1b; 4. 点击登录&#xff1b; 实现代码如下&#xff1a; Dim 企儿,登录企儿 …

C语言第入门——第十六课

目录 一、分治策略与递归 二、递归 1.求解n的阶乘 2.输入整数、倒序输出 3.输入整数、正序输出 4.计算第n位Fibonacci数列 ​编辑5.无序整数数组打印 6.找到对应数组下标 一、分治策略与递归 在我们遇到大问题的时候&#xff0c;我们的正确做法是将它分解成小问题&a…

uni-app小程序开发使用uView,u-model传入富文本内容过长,真机上无法滚动

uni-app小程序开发使用uView&#xff0c;u-model传入富文本内容过长&#xff0c;真机上无法滚动 找到u-model插件&#xff0c;在slot内容的外层自定义加入一个scroll-view标签&#xff0c;设置scroll-y“true”&#xff0c;指定高度。 <template><view><u-pop…

章鱼网络在 NEARCON23 发布 Octopus 2.0

香港时间2023年11月8日12点&#xff0c;章鱼网络举行第15期 Community Call。 我们在10月8日庆祝了章鱼网络主网上线二周年&#xff0c;并参加了激动人心的 Cosmoverse2023 活动。最重要的是&#xff0c;我们在 Octopus 2.0 的开发中取得了重大进展。 11月8日 Community Call …

vue3 - pinia 中的 storeToRefs

interface.d.ts文件 export interface useMyStore {id: stringcontent: stringtype: stringstatus: booleancollected: booleandate: stringquality: string }useMyStore.js文件 const msgData [{id: 123,content: 腾讯大厦一楼改造施工项目 已通过审核&#xff01;,type: 合…

SQLite3 数据库学习(二):SQLite 中的 SQL 语句详解

参考引用 SQLite 权威指南&#xff08;第二版&#xff09;SQLite3 入门 1. SQL 语句操作 SQLite 数据库 1.1 创建数据表格 create table 表名(字段名 数据类型&#xff0c; 字段名 数据类型&#xff0c; 字段名 数据类型&#xff0c; 字段名 数据类型); 命令行语句结束要加分…