像这样的东西可能会帮助你。尽管您可能希望向属性添加一些附加属性,以允许您在每个操作上指定EntityCode参数,而不是对其进行硬编码。
public class EntityAuthRequired : FilterAttribute, IAuthorizationFilter
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
//Make sure that this is not NULL before assigning value as string...
var entityCode = filterContext.RouteData.Values["entityCode"] as string;
// do your logic...
if (!allowed)
filterContext.Result = new HttpUnauthorizedResult();
}
}
此外,如果
entityCode
不在您的RouteData中,您可以使用
filterContext.RequestContext.HttpContext.Request
查看日志数据。