【发布时间】:2016-11-22 19:26:23
【问题描述】:
我正在将 MVC Core 用于一个需要解决以下问题的网站。
假设我有两个组 GroupA 和 GroupB,这些组有一些实体。一个实体要么属于 GroupA 要么属于 GroupB - 但不能同时属于两者。为了保护这些实体的更新,我定义了以下策略:
AuthorizationOptions.AddPolicy("UpdateEntityInGroupAPolicy", policy =>
{
policy.RequireClaim("ClaimThatAllowsUpdatingEntityInGroupA");
});
此政策将确保想要更新 GroupA 中的实体的用户拥有声明 ClaimThatAllowsUpdatingEntityInGroupA。可以为 GroupB 创建一个类似的策略,声明为 ClaimThatAllowsUpdatingEntityInGroupB。
此外,假设 GroupA 有一个 id 为 5 的实体,GroupB 有一个 id 为 10 的实体。如果给定用户(拥有声明 ClaimThatAllowsUpdatingEntityInGroupA,但没有声明 ClaimThatAllowsUpdatingEntityInGroupB)正在更新 url 上 id 为 5 的实体:
http://example.com/entity/5/update
我现在如何确保用户不只是将 url 中的 5 更改为 10 并实际更新 GroupB 中 id 为 10 的其他实体?
我希望我对这个问题很清楚,并感谢您的帮助:)
【问题讨论】:
标签: asp.net-core authorization