使用属性提前从方法返回
本文关键字:方法 返回 属性 | 更新日期: 2023-09-27 17:50:26
是否有可能使一个属性检查一个条件,然后根据该条件停止修饰方法的执行或让修饰方法继续执行?
现在是显而易见的问题。如果有,怎么做?如果没有,那么是否有其他工作值得一试?
这个属性的总体目标是,在ASP中。. NET MVC,检查用户是否被授权,如果他们没有被授权,要么返回一个特定的JsonResult
(在属性中定义),要么让装饰方法继续执行。明显的问题,我看到这是可能的,如果控制器动作是不同类型的ActionResult
或JsonResult
,存在运行时错误的可能性。
对于您的特殊情况,您可以使用ASP。. NET MVC 过滤器做你需要的。让您的属性扩展AuthorizeAttribute。
public class MustHaveFooAccessAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
// Return true or false after checking authorization
}
}
使用属性是不可能的-属性在编译时解析。它们不会在运行时执行。
属性"control"的特定行为是通过反射来管理的。