ASP.NET Core如何设置有条件允许访问路由
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容主要讲解"ASP.NET Core如何设置有条件允许访问路由",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"ASP.NET Core如何设置有条件允
千家信息网最后更新 2025年01月19日ASP.NET Core如何设置有条件允许访问路由
本篇内容主要讲解"ASP.NET Core如何设置有条件允许访问路由",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"ASP.NET Core如何设置有条件允许访问路由"吧!
1.简介
有时,我们可能在Web API中包含一些具有调试功能的请求。比如我们上次的文章中 为什么ASP.NET Core 数据库连接串的值和appsettings.json配的不一样?使用的获取配置值的功能:
endpoints.MapGet("/test2/{key:alpha}", async context =>{ var key = context.Request.RouteValues["key"].ToString(); foreach (var provider in Configuration.Providers.Reverse()) { if (provider.TryGet(key, out string value)) { await context.Response.WriteAsync(provider.ToString()); await context.Response.WriteAsync("\r\n"); await context.Response.WriteAsync(value); break; } }});
但你绝不会想在生产环境中暴露它们。要想实现此目的,有多种方案:
用户权限验证
编译成单独dll,不发布到生产环境
这些方案各有利弊,这里我们介绍一种使用Middleware
实现的简单方案。
2.实现
从上图可以看到,请求要访问到实际路由,需要先经过Middleware
,我们可以在最外层的Middleware
进行检查,只有满足条件的请求才能通过,否则返回403错误。
Middleware代码如下:
public class DebugMiddleware : IMiddleware{ public async Task InvokeAsync(HttpContext context, RequestDelegate next) { var isDebugEndpoint = context.Request.Path.Value.Contains("/test"); var debugKey = context.Request.Query["debugKey"].ToString(); var debugKeyInConfig = "123456";//来自于配置 if (isDebugEndpoint && debugKey!=debugKeyInConfig) { context.SetEndpoint(new Endpoint((context) => { context.Response.StatusCode = StatusCodes.Status403Forbidden; return Task.CompletedTask; }, EndpointMetadataCollection.Empty, "无权访问")); } await next(context); }}
当请求地址包含"/test
"时,检查请求参数debugKey
是否和配置的值一样,如果不一样就返回403错误。
效果如下图:
到此,相信大家对"ASP.NET Core如何设置有条件允许访问路由"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
条件
路由
方案
配置
内容
功能
实际
环境
错误
学习
检查
生产
实用
更深
上图
代码
兴趣
利弊
参数
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
如何控制软件开发项目成本
股票软件开发软件公司
岚刻网络技术
hp服务器驱动到哪里找
论文数据库都有啥
wow数据库科多兽
模拟器多开淘宝二手服务器怎么样
口令服务器找到
软件开发好移民吗
不联网调用网络数据库
传奇能不能更改数据库
网络安全可靠 资质
用腾讯的服务器怎样可以不备案
学点在线网络技术有限公司
服务器内存主频一般多少
老头环服务器断开连接是怎么回事
数据库插入信息格式
阿里云云端服务器显示风险
ps3数据库会掉吗
网站服务器地址查询
连接数据库使用的文本格式
机架式服务器运维
多媒体服务器( v10)下载
主干网优选的网络技术
软件开发专业名称
网络安全法只能用于
网络安全法 实施问题研究
站群服务器为什么这么便宜
fast 虚拟服务器
北京收银软件开发公司