当前位置: 首页 > 知识库问答 >
问题:

如何创建不依赖于ASP. NET Core中声明的自定义Authorize属性?

单勇
2023-03-14

我想创建一个自定义属性,该属性执行以下操作:

  • 如果请求的URL包含查询参数id,则需要正常授权
  • 如果请求的URL不包含查询参数id,则无需授权

在这种情况下,阅读https://docs.microsoft.com/en-us/aspnet/core/security/authorization/iauthorizationpolicyprovider?view=aspnetcore-3.1并不能让事情变得非常清楚。

阅读如何在ASP中创建自定义属性。净核心?也不清楚,因为这取决于索赔。

共有1个答案

鞠安民
2023-03-14

您可以简单地创建授权过滤器

public class CustomAuthorizationFilter : IAuthorizationFilter
    {
        public void OnAuthorization(AuthorizationFilterContext context)
        {
            string id = context.HttpContext.Request.Query["id"]?.ToString();

            if (!string.IsNullOrEmpty(id))
            {
                // Authorization logic
            }
        }
    }
 类似资料:
  • 我试图将spring-cloud堆栈用于一个使用Zuul的项目。在我的组织中,我们有一个基于XML的自定义配置堆栈,它执行属性组合和分层重写。由于这种配置的处理方式,我一直在努力为它创建一个PropertySource。 我的自定义PropertySource必须使用我的配置bean,但是因为PropertySources是在spring boot的引导过程中初始化的,所以应用程序上下文还没有完全

  • 声明依赖 声明依赖能力为工程师提供了声明依赖关系的编译接口。 FIS3 在执行编译的过程中,会扫描这些编译标记,从而建立一张 静态资源关系表,资源关系表详细记录了项目内的静态资源id、发布后的线上路径、资源类型以及 依赖关系 和 资源打包 等信息。使用 FIS3 作为编译工具的项目,可以将这张表提交给后端或者前端框架去运行时,根据组件使用情况来 按需加载资源或者资源所在的包,从而提升前端页面运行性

  • 声明依赖 DSL配置block dependencies用来给配置添加一个或多个依赖,你的项目不仅可以添加外部依赖,下面这张表显示了Gradle支持的各种不同类型的依赖。 这一章只介绍外部模块依赖和文件依赖,我们来看看Gradle APi是怎么表示依赖的。 理解依赖的API表示 每个Gradle项目都有一个DependencyHandler的实例,你可以通过getDependencies()方法来

  • 我创建了一个自定义验证属性,我想将其用于 API 控制器 DTO。此属性需要来自已配置选项的值,这就是我在构造函数中注入这些值的原因,以便我以后可以在 和 方法中使用选项服务。 不幸的是,当我想在DTO中将其用作属性时 我收到错误信息 没有给出对应于'MyValidationAttribute.MyValidationAttribute(IOptionsMonitor)'所需形式参数'myOpti

  • 问题内容: 我希望能够用元数据注释我的类型和方法,并在运行时读取它们。 语言参考说明了如何声明属性用法,但实际上可以声明自己的属性吗? 阅读将需要某种反射机制,我根本无法在参考文献中找到这种反射机制,因此问题的第二部分可能是- 是否可能反射。如果这些功能在Swift中不可用,是否可以用Objective-C代码完成(但在Swift实例和类型上)? 相对不相关的注释:关于将什么建模为属性以及将哪些内

  • 我正在考虑将Auth0用于我的API和web应用程序,并进行查询。生成Jwt令牌时,我希望包含一些仅存在于我的用户数据库中的自定义用户声明。这是可能的,还是所有声明都需要作为Auth0中的预定义属性存在。 我有自己的用户数据库,因为我需要在那里存储一些动态和复杂的用户权限。我意识到一个选择是不将这些权限存储在令牌中,我可以有一个单独的api来获取它们,但是为了性能和简单性,我宁愿将它们包装到Jwt