gpt4 book ai didi

c# - 过滤器可以从我的 BaseController 访问属性吗?

转载 作者:行者123 更新时间:2023-11-30 16:10:19 25 4
gpt4 key购买 nike

我有一个 basecontroller,其属性如下:

public class BaseController : Controller 
{
public User CurrentUser {get;set;}

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
// if session cookie found, set User object here
}
}

现在我想创建一个 Action 文件管理器,我可以在 Controller 或 Action 上设置我想做的事情,比如:

if (User.IsAdmin) 
{
}
else
{
// redirect to login or some page
}

所以这个过滤器 @AdminOnly 我可以放在 Controller 或操作上,这将确保只有设置了 IsAdmin 标志的用户才能查看操作。

过滤器是否可以看到当前正在执行的 Controller ?

最佳答案

你不能用吗

if (filterContext.Controller is BaseController)
{
BaseController ctr = (BaseController)filterContext.Controller;
if (ctr.User.IsAdmin)
{....}
}

Link

关于c# - 过滤器可以从我的 BaseController 访问属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26023954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com