相关疑难解决方法(0)

基于权限从WebApi端点进行上下文序列化

我正在使用Asp.Net Web Api.我希望能够根据连接的客户端访问权限过滤掉响应对象上的某些字段.

例:

class Foo
{
    [AccessFilter("Uberlord")]
    string Wibble { get; set; }

    string Wobble { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

返回数据时,Wibble只有当前用户上下文可以满足"Uberlord"的值时,才应返回该字段.

我正在探索三种途径,但我没有一个有效的解决方案:

  1. 自定义WebApi MediaTypeFormatter.
  2. 自定义json.net IContractResolver.
  3. 某种用于操纵响应对象的控制器的AOP包装器

我的问题是:

  • 自定义格式化程序不是正确的位置,但可能是唯一的选择.
  • 自定义json序列化程序无法访问当前上下文,所以我必须解决这个问题.
  • 使用前两个选项,您需要针对每种响应格式,json,xml,某些自定义格式等进行特定实现.这意味着如果支持其他响应类型,则需要自定义格式化程序/序列化程序来防止敏感数据泄漏.
  • AOP控制器包装器需要大量反射.

另一个好处是使用相同的机制从入站请求对象的字段中去除值.

我错过了一个明显的钩子吗?这是通过另一种方式解决的吗?

rest serialization data-security asp.net-web-api

8
推荐指数
1
解决办法
1898
查看次数