将自定义模型绑定器连接到自定义授权属性
本文关键字:自定义 授权 属性 连接 模型 绑定 | 更新日期: 2023-09-27 18:30:16
在我的 MVC 4 Web 应用程序中,当我收到请求时,我需要使用自定义绑定程序中的模型来执行一些授权逻辑。我的问题是我不知道如何将我的模型和绑定器连接到过滤器属性。可能吗?
编辑:添加代码块
public class FeatureCodeAttribute : AuthorizeAttribute
{
private string featureCode;
private userPermissions;
public FeatureCodeAttribute(string code, UserPermissions permissions)
{
featureCode = code;
userPermissions = permissions;
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (HasFeature(userPermissions, featureCode))
{
return true;
}
else
{
return false;
}
}
}
我想做的是绑定用户权限对象。
模型绑定器在授权后出现在 MVC 请求管道中。所以,基本上 mvc 会首先在 AuthorizeAttribute 的 OnAuthorization 方法中授权请求,一旦授权成功,MVC 就会尝试绑定模型。
但是,您仍然可以像这样在OnAuthorization方法中使用该属性。
public override void OnAuthorization(AuthorizationContext filterContext)
{
var value = filterContext.Controller.ValueProvider.GetValue("anyproperty");
...
}