【发布时间】:2015-08-06 13:25:34
【问题描述】:
我想授权用户对实体具有写入权限。我通过多种方式验证了这一点。
例如,我会检查 entity.PropertyX == user.PropertyY 或 entity.Users.Contains(user)) 还是一些更复杂的东西...
目前我直接在控制器操作中执行此操作,随着控制器数量的增加,这不再是可接受的。
// example class, pretty much all classes have these properties
// lets assume they do for brevity
public class Foo
{
// omitted...
public int PropertyX { get; set; }
public virtual ICollection<User> Users { get; set; }
}
我想将此逻辑移动到一个属性中。但我不确定我是否可以在属性中获得相同的灵活性。因为我经常/总是需要有问题的实体来对照用户检查它,这在属性中不容易做到。 (据我所知)
身份
目前我正在使用自己的用户表,但我计划在某个时候更改为 Identity。我听说过基于声明的授权,但我必须说我还没有得到它:( 所以声明在这里对我有任何帮助吗?据我了解,它只是用就像一个地址字段。
控制器
[CheckIfUserHasAccess]
public IHttpActionResult Post(T entity)
{
// omitted...
}
[CheckIfUserHasAccess]
public IHttpActionResult Patch(int id, JObject jobj)
{
// omitted...
}
对...问题部分:) 您将如何实施每个实体的授权?
【问题讨论】:
标签: c# asp.net entity-framework asp.net-web-api identity