實現此目的的一種方法可能是讓每個用戶(父母)Claims代表他們的每個孩子的親子關係。這些將被添加到用戶的主體in the manner described in this article。某些數據存儲(例如數據庫表)會記錄哪些用戶(父母)是哪些子女的父母。最後,在API操作方法中,將請求信息的孩子的ID與用戶主體上的子級聲明列表進行比較,如果該ID不存在,則返回4xx狀態碼(可能爲403 Forbidden
)。
喜歡的東西:
// Cast the Thread.CurrentPrincipal
IClaimsPrincipal icp = Thread.CurrentPrincipal as IClaimsPrincipal;
// Access IClaimsIdentity which contains claims
IClaimsIdentity claimsIdentity = (IClaimsIdentity)icp.Identity;
// Access claims
if(claimsIdentity.Claims
.Where(c => c.ClaimType == "name-of-your-custom-claim")
.Select(c => c.Resource.ToString())
.Contains(childId)) { return new HttpResponseMessage(HttpStatusCode.Forbidden);
應該工作。沒有測試代碼或檢查它編譯;這是給出要點的例子。我可能會在稍後清理它。