首页 新闻 搜索 专区 学院

net core 基类控制器构造函数终止输出

0
悬赏园豆:20 [已解决问题] 解决于 2021-06-01 13:44

环境 netcore2.1 项目历史原因
基类 SSOController

    public SSOController(IAuth authUtil)
    {
        _authUtil = authUtil;
        AuthStrategyContext authStrategyContext = _authUtil.GetCurrentUser();
        if (authStrategyContext != null)
        {
            _loginInfo = new LoginInfo
            {
                Id = authStrategyContext.User.Id,
                Account = authStrategyContext.User.Account,
                Name = authStrategyContext.User.Name,
            };
        }
      //这里是空的时候 终止响应 跳转到登入页面???
    }

这样子类继承 不用每个去判断。 在原有的基础 不加全局过滤判断了。

s_p的主页 s_p | 菜鸟二级 | 园豆:267
提问于:2021-03-03 11:10
< >
分享
最佳答案
0
 public class ControllerBase: Controller
    {
       public IAuth authUtil { get; set; } //属性注入
        protected virtual IActionResult Do<T>(Func<T> doFunc)
        {
           
            //这里写你需要判断为空就返回到登录页面的代码

            try
            {
                var result = doFunc();

                if (result is IActionResult)
                    return (IActionResult)result;

                return new OkObjectResult(result);
            }
            catch (Exception ex)
            {
              *******
            }
        }
}

//使用
         return Do<IActionResult>(() =>
            {
               //调用业务层接口

                return new JsonResult(result);
            });
收获园豆:20
~扎克伯格 | 小虾三级 |园豆:1907 | 2021-03-03 16:30
其他回答(1)
0

建议可以改用一个身份验证的中间件来做这个事情, 或者用一个action的拦截器也可以.

czd890 | 园豆:11882 (专家六级) | 2021-03-03 11:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册