我有这个控制器:
public class TestController : ODataControllerBase<TestModel, Test>
{
public IEnumerable<TestModel> Get()
{
var results = Tests.Get();
return new PageResult<TestModel>(results);
}
}
哪个有这个基本控制器:
public abstract class ODataControllerBase<TModel, TEntity> : ODataController
{
protected override void Initialize(HttpControllerContext controllerContext)
{
base.Initialize(controllerContext);
if (!HttpContext.Current.User.IsInRole("Test"))
{
base.Ok(new List<TModel>());
}
}
}
这个基础继承自多个控制器,一切正常。
除了检查用户是否处于正确角色的部分。如果用户没有进入base.Ok(new List<TModel>());
部分,那就是它。它会跳过然后继续执行Get()
操作并返回结果。
如何确保基本控制器设置响应上下文并阻止任何进一步的操作运行?