【发布时间】:2015-07-18 11:38:12
【问题描述】:
我有一个关于在服务层中进行任何数据库更新之前授权/验证用户操作的问题。
我有一个 JobPostingController,它提供了创建/更新/删除职位发布的方法。
我希望用户只有在他是实体的所有者时才能更新/删除职位发布。 (在我的 JobPosting 实体中有类似 JobPostingOwner 的东西)
有没有一种简单的方法来创建自定义控制器操作过滤器来实现这一点?
据我了解,检查是否允许用户更新/删除特定实体应该在服务层中,但不知道是否有比这更简单的方法
public void UpdateJobPosting(JobPosting jobPosting, User user)
{
if(jobPostingOwnerId == user.Id) --> OK
else --> not OK
}
另一个简单的例子:
/JobPosting/Edit/(id)
我想始终检查是否真的允许用户编辑此职位发布。 所以在服务层我会这样做:
public JobPosting GetJobPosting(int id, User user)
{
var query = from item in context.JobPostings
where item.id == id
&& item.OwnerId == user.Id
select item;
....
}
这是正确的方法还是有其他模式?
【问题讨论】:
标签: asp.net asp.net-mvc validation security authorization