c# - Microsoft.AspNetCore.Authorization.AuthorizeAttribute 不包含“IsAuthorized”方法
问题描述
我目前正在尝试编写自己的 AuthorizeAttribute,因为我不能也不想使用内置的。
在互联网上,我到处都能找到对我不起作用的解决方案。到处都有“IsAuthorized”方法被覆盖,这似乎不存在。顺便说一句:我没有类 HttpActionContext。
我已经尝试使用其他名称空间解决问题,但没有成功。包含所需“AuthorizeAttribute”类的唯一命名空间是 Microsoft.AspNetCore.Authorization。
using Microsoft.AspNetCore.Authorization;
using System;
namespace Project.PermissionManagement {
public class PermissionControl : AuthorizeAttribute {
private readonly Permission[] permissions;
public Permission[] Permissions { get { return permissions; } }
public PermissionControl(params Permission[] permissions) {
this.permissions = permissions;
}
protected override bool IsAuthorized(HttpActionContext actionContext) {
foreach (Permission requiredPermission in permissions) {
if (!Globals.CurrentUser.Permissions.Contains(requiredPermission))
return false;
}
return true;
}
}
}
最初的想法是保护任何具有属性的方法。任何没有正确权限的用户都应该被重定向到错误页面。
这应该看起来像这样:
[PermissionControl(Permission.RequiredPermission)]
void ActionForSpecialUsers() {
DoSomething();
}
解决方案
推荐阅读
- r - 从 URL 读取图像的 R 函数
- python - 如何为 Django 表格内联添加不同的占位符
- vba - 基于 Outlook 模板,从 Word 菜单创建电子邮件
- javascript - 如何让 HOC 对覆盖道具做出反应?
- google-apps-script - 存档脚本随机停止处理工作表上已填充的数据
- anaconda - Azure ML 无法创建 conda 环境(退出代码:-15)
- tailwind-css - Tailwind 不会吹扫
- angular - 未在角度 11 中调用事件发射器函数
- api - 任何注册为亚马逊产品广告 API 5.0 开发人员的方式
- youtube - youtube如何将其横幅照片保存在频道上,以免被下载