返回顶部
首页 > 资讯 > 精选 >ASP.NET Core中如何使用功能开关控制路由访问
  • 637
分享到

ASP.NET Core中如何使用功能开关控制路由访问

2023-06-29 06:06:21 637人浏览 安东尼
摘要

本篇内容介绍了“asp.net Core中如何使用功能开关控制路由访问”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!其实我们使用了

本篇内容介绍了“asp.net Core中如何使用功能开关控制路由访问”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

其实我们使用了2个条件做的判断:

var isDebugEndpoint = context.Request.Path.Value.Contains("/test");var debugEndpoint = await _featureManager.IsEnabledAsync("ForbiddenDebugEndpoint");if (isDebugEndpoint && debugEndpoint)

如果仅用功能开关来控制:

var debugEndpoint = await _featureManager.IsEnabledAsync("ForbiddenDebugEndpoint");if (debugEndpoint)

这样是不是更符合功能开关的含义呢!

一、IFeatureFilter介绍

IFeatureFilter(功能过滤器)可用于确定是否满足某些条件以启用一项功能。

功能过滤器可以自由使用任何可用的标准,例如流程状态或请求内容。

可以为给定功能注册功能过滤器,如果任何特征过滤器评估为真,该特征将被考虑启用。

在本文,我们可以判断当前路由地址是否为调试地址,让评估返回真。

二、实现

自定义功能过滤器实现代码如下:

public class DebugFeatureSettings{    public string[] DebugEndpoints { get; set; }}[FilterAlias("DebugFeatureFilter")]public class DebugFeatureFilter : IFeatureFilter{    private readonly IHttpContextAccessor _httpContextAccessor;    public DebugFeatureFilter(IHttpContextAccessor httpContextAccessor)    {        _httpContextAccessor = httpContextAccessor;    }    public Task<bool> EvaluateAsync(FeatureFilterEvaluationContext context)    {        var settings = context.Parameters.Get<DebugFeatureSettings>();        foreach (var endPoint in settings.DebugEndpoints)        {            var isDebugEndpoint = _httpContextAccessor.HttpContext.Request.Path.Value.Contains(endPoint);            return Task.FromResult(isDebugEndpoint);        }        return Task.FromResult(false);    }}

我们注入了IHttpContextAccessor,用于获取当前请求上下文,然后判断当前路由地址是否包含DebugEndpoints配置的值。

三、使用

修改我们上次实现的DebugMiddleware:

public class DebugMiddleware : IMiddleware{    private readonly IFeatureManager _featureManager;    public DebugMiddleware(IFeatureManager featureManager)    {        _featureManager = featureManager;    }    public async Task InvokeAsync(HttpContext context, RequestDelegate next)    {        var debugEndpoint = await _featureManager.IsEnabledAsync("ForbiddenDebugEndpoint");        if (debugEndpoint)        {            context.SetEndpoint(new Endpoint((context) =>            {                context.Response.StatusCode = StatusCodes.Status403Forbidden;                return Task.CompletedTask;            },                        EndpointMetadataCollection.Empty,                        "无权访问"));        }        await next(context);                }}

然后将配置修改为如下形式:

"FeatureManagement": {    "ForbiddenDebugEndpoint": {        "EnabledFor": [        {            "Name": "DebugFeatureFilter",            "Parameters": {                "DebugEndpoints": [ "/test" ]            }        }        ]    }}

结论:

运行后我们发现,只有符合功能开关设置的路由地址才会被限制访问:

ASP.NET Core中如何使用功能开关控制路由访问

“ASP.net Core中如何使用功能开关控制路由访问”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: ASP.NET Core中如何使用功能开关控制路由访问

本文链接: https://lsjlt.com/news/322982.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ASP.NET Core中如何使用功能开关控制路由访问
    本篇内容介绍了“ASP.NET Core中如何使用功能开关控制路由访问”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!其实我们使用了...
    99+
    2023-06-29
  • ASP.NET Core使用功能开关控制路由访问操作
    目录前言:1.功能开关3.实现3.使用结论:前言: 在前面的文章,我们介绍了使用Middleware有条件地允许访问路由(《ASP.NET Core使用Middleware...
    99+
    2024-04-02
  • ASP.NET Core使用功能开关控制路由访问操作(续)
    目录前言:一、IFeatureFilter介绍二、实现三、使用结论:前言: 在前面的文章,我们介绍了​ ​使用功能开关控制路由访问​​。 但其实我们使用了2个条件做的判断: var ...
    99+
    2024-04-02
  • ASP.NET Core使用功能开关控制路由访问的方法
    今天小编给大家分享一下ASP.NET Core使用功能开关控制路由访问的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-06-29
  • ASP.NET Core如何设置有条件允许访问路由
    本篇内容主要讲解“ASP.NET Core如何设置有条件允许访问路由”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET Core如何设置有条件允许访问路由”吧!1....
    99+
    2023-06-29
  • ASP.NET Core使用Middleware设置有条件允许访问路由
    目录1.简介2.实现1.简介 有时,我们可能在Web API中包含一些具有调试功能的请求。比如我们上次的文章中 为什么ASP.NET Core 数据库连接串的值和...
    99+
    2024-04-02
  • C++中如何使用访问控制符
    本篇文章为大家展示了C++中如何使用访问控制符,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、简单可以归为以下两种描述:1)一个类友元(包含友元函数或者友元类的成员函数或者友元类的所有成员函数)可...
    99+
    2023-06-17
  • 如何使用nodejs实现路由功能
    这篇文章将为大家详细讲解有关如何使用nodejs实现路由功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。结构  项目结构如下  代码如下功能【router.js】// 加载所需模块var&nb...
    99+
    2023-06-14
  • ASP.NET Core如何使用Log4net实现日志记录功能
    这篇文章主要介绍“ASP.NET Core如何使用Log4net实现日志记录功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.NET Core如何使用Log4net实现日...
    99+
    2023-06-29
  • Vue3如何使用Vue-Router进行路由控制
    目录1.安装Vue-router3.固定路由跳转4.动态路由跳转5. vue-router配置文件6.在代码中控制路由跳转1.安装Vue-router 传送门:官方文档 yarn a...
    99+
    2024-04-02
  • 如何使用Vue-Router2实现路由功能
    这篇文章主要为大家展示了“如何使用Vue-Router2实现路由功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Vue-...
    99+
    2024-04-02
  • 如何在Go中使用Casbin进行访问控制
    目录Casbin是什么Casbin的工作原理Casbin的核心概念ModelPolicy实践创建项目代码开发验证Casbin是什么 Casbin是一个强大的、高效的开源访问控制框架,...
    99+
    2024-04-02
  • 如何在ASP.NET中利用WebApi实现一个版本控制功能
    本篇文章为大家展示了如何在ASP.NET中利用WebApi实现一个版本控制功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。WebApi版本控制的好处有助于及时推出功能, 而不会破坏现有系统,兼容性...
    99+
    2023-06-06
  • SQL基础中如何控制用户访问
    这篇文章给大家介绍SQL基础中如何控制用户访问,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 1、登录数据库的三种验证方式2、数据库账户的创建、解锁、改密...
    99+
    2024-04-02
  • MySQL中如何限制用户权限和访问控制
    在MySQL中,可以通过以下几种方法限制用户权限和访问控制: 使用GRANT语句授予或撤销用户权限。GRANT语句允许管理员为用...
    99+
    2024-03-06
    MySQL
  • 如何解决ASP.NET Core中使用漏桶算法限流的问题
    这篇文章主要介绍了如何解决ASP.NET Core中使用漏桶算法限流的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。漏桶算法是限流的四大主流算法之一,其应用场景...
    99+
    2023-06-25
  • MariaDB中如何设置用户权限和访问控制
    在MariaDB中,可以通过以下步骤来设置用户权限和访问控制: 创建新用户:可以使用CREATE USER语句来创建新用户,例如:...
    99+
    2024-03-15
    MariaDB
  • 阿里云服务器关机了,如何打开端口访问功能
    1. 确认服务器是否已经开启端口访问功能 在阿里云服务器控制台中,进入实例详情页,点击安全组选项卡,查看当前安全组的入方向和出方向是否已经开启了需要访问的端口。如果没有开启,需要添加安全组规则。 2. 添加安全组规则 在安全组选项卡中,点...
    99+
    2023-10-27
    阿里 端口 功能
  • Java11中如何解决基于嵌套关系的访问控制优化问题
    这篇文章主要为大家展示了Java11中如何解决基于嵌套关系的访问控制优化问题,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“Java11中如何解决基于嵌套关系的访问控制优化问题”这篇文章吧。Java...
    99+
    2023-06-26
  • 在SpringBoot中使用MyBatis如何实现一个应用访问功能
    今天就跟大家聊聊有关在SpringBoot中使用MyBatis如何实现一个应用访问功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一,Pom文件<&#63;xml v...
    99+
    2023-05-31
    springboot 应用访问 mybatis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作