.NETCore中的自定义授权属性我正在.NETCore1.1中构建一个API。我在HttpContext.User中构建了一个自定义用户对象,它是我所有其他控制器继承自的基本控制器,并且我默认启用身份验证([AllowAnonymous]必须在必要时手动禁用)。User对象有一个IsAdmin属性。现在我正在检查用户是否是每个相关功能顶部的管理员,如下所示,但我觉得必须有一种方法来添加自定义属性来简化和清理这段代码。作为参考,User.IsAdmin是这个的简写:bool.Parse(HttpContext.User.FindFirst("IsAdmin")?.Value)而不是这个:[HttpGet]publicasyncTaskGet(){if(!User.IsAdmin)返回禁止();//logic}我喜欢这个(或类似的东西):[AdminOnly][HttpGet]publicasyncTaskGet(){//logic}我试着查看[AuthorizeAttribute]的源代码来尝试构建,但这只是一个shell,我不知道真正的魔法发生在哪里。我怎样才能做到这一点?@JoeAudette建议的解决方案似乎是最佳选择。在Startup.cs中创建自己的策略:options.AddPolicy("PolicyName",p=>{p.RequireAuthenticatedUser();p.RequireClaim("IsAdmin",true);然后将其用作属性:以上是C#学习教程:.NETCore中自定义授权属性分享的全部内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注---[Authorize("PolicyName")】本文来自网络收藏,不代表立场,如涉及侵权,请点右联系管理员删除,转载请注明出处:
