环境 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,
};
}
//这里是空的时候 终止响应 跳转到登入页面???
}
这样子类继承 不用每个去判断。 在原有的基础 不加全局过滤判断了。
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); });
建议可以改用一个身份验证的中间件来做这个事情, 或者用一个action的拦截器也可以.