Avatar ·

在ASP.NET Core中创建自定义AuthorizeAttribute:分步指南

大家好!我是ASP.NET Core的新手,正在尝试为我的Web应用程序实现自定义授权属性。在旧的ASP.NET MVC中,我只需继承`AuthorizeAttribute`并重写`AuthorizeCore`方法。但在ASP.NET Core中,情况完全不同。\n\n我需要检查用户是否在数据库中有特定的权限(permission),然后才能允许访问控制器或操作。例如,我有一个商店,只有拥有"CanEditProducts"权限的用户才能编辑商品。\n\n以下是我尝试过的:\n\n```csharp\npublic class CustomAuthorizeAttribute : AuthorizeAttribute\n{\n private readonly string _permission;\n\n public CustomAuthorizeAttribute(string permission)\n {\n _permission = permission;\n }\n\n protected override bool AuthorizeCore(HttpContextBase httpContext)\n {\n // 来自ASP.NET MVC的旧方法\n return httpContext.User.HasClaim("permission", _permission);\n }\n\n public override void On