比如说我有一个管理员控制器,我想在调用管理控制器的任何操作的用户执行其他自定义检查。
如果仅为控制器调用任何操作,如何在控制器类中执行某些代码?
答案 0 :(得分:1)
如果要在使用控制器访问任何方法时验证用户,请使用[Authorize]
属性修饰控制器。
如果您只想限制某些操作,可以按原样保留控制器,只使用[Authorize]
属性修饰所需的方法。
如果您希望在控制器中仅保留未经授权的某些方法,请使用[Authorize]
属性修饰控制器,并且需要使用[AllowAnonymous]
属性修饰您希望匿名用户访问的方法。
这会有帮助吗?如果您有具体要求,请将其包括在内。
答案 1 :(得分:1)
由于您没有要求特定的编程示例,我将仅向您推荐Service Filters的.net核心文档。
之前我已经使用过这些来为登录用户创建类似活动跟踪器的东西,所以说它是一个管理员,我想看看用户多久以前执行了一个操作,这个过滤器会检查用户上次的活动在允许访问该方法之前的会话中。
以下是一个通用示例:
public class MyFilter : ActionFilterAttribute
{
public MyFilter()
{
}
//After Method execution
public override void OnActionExecuted(ActionExecutedContext context)
{
//Do stuff
}
//Before Method execution
public override void OnActionExecuting(ActionExecutingContext context)
{
//Do stuff
}
}
在初创公司中:services.AddScoped<MyFilter>();
以上控制器/操作:[ServiceFilter(typeof(MyFilter))]