1

我已經創建了多個授權策略,每個組中1個要求,執行角色檢查,像這樣:授權策略擁有多個聲明

options.AddPolicy("SuperAdminPolicy", policy => policy.RequireClaim(ClaimTypes.Role, "SuperAdmin")); 

這一切工作正常。

但是,我現在正要檢查兩種不同類型的索賠,例如,我想確保用戶具有特定的角色聲明(如上所述),但我也想檢查完全不同的聲明(例如名字)的值。爲了澄清,我想說的是,「用戶必須在角色'x'中,並且必須具有'bob'的名字聲明值」。

我不能完全弄清楚如何實現這一點(我相信它可能是非常簡單的)。

有人可以指點我正確的方向嗎?

感謝。

回答

3

我們可以像這樣鏈接RequireClaim。

services.AddAuthorization(option => { 

      option.AddPolicy("SuperAdmin policy", 
      policy => policy.RequireClaim(ClaimType.Role,"SuperAdmin") 
           .RequireClaim(ClaimType.Name,"Bob")); 
          });