我正在使用AuthorizeAttribute来装饰我的控制器操作.
[ServiceAuthorize(Roles="Editor,Publisher,Administrator")] public JsonResult Create(NewsArticle newsArticle)@H_301_4@我的NewsArticle模型中有一个字段,我想在AuthorizeAttribute中的OnAuthorize方法中使用. @H_301_4@有没有办法从AuthorizeAttribute的OnAuthorize方法中获取模型? @H_301_4@我认为它可以在AuthorizationContext中的某个地方使用但我找不到它.我知道我可以在过滤器属性的ActionExecutingContext中找到它,但这意味着我需要在我的操作上使用另一个过滤器,我希望能够在一个步骤中执行所有授权. @H_301_4@谢谢.
解决方法
@H_301_4@Is there any way to get at the model from within the OnAuthorize@H_301_4@不,因为OnAuthorization在模型绑定器之前运行.您可以做的是从值提供程序中读取值:
method of the AuthorizeAttribute?
public override void OnAuthorization(AuthorizationContext filterContext) { var value = filterContext.Controller.ValueProvider.GetValue("someproperty"); ... }