問題: 我有一些信息,有些用戶必須通過我的Web應用程序訪問它們。假設我擁有相同類型T的資源A,B,C,用戶是X,Y,Z.該業務指出用戶可以像下表中那樣訪問此資源。如何授予對特定資源的訪問權限?
用戶 - >資源
X - >一個
Ÿ - > AC
ž - > ABC
一個真實世界的例子將是這樣的:
- 用戶X可以查看所有來自洛杉磯的大賣場
- 用戶Y可以看到來自洛杉磯和芝加哥的所有大賣場
- 用戶Z可以看到,從洛杉磯,芝加哥和N.Y.
另一件事提大賣場的是,在任何時候,用戶X可被授予訪問看到N.Y.的大賣場了。
問題: 我該如何實現授權系統,以便允許我授予用戶對特定資源集的訪問權限?
我的第一個想法: 由於我打算使用ASP.NET MVC和Web API,我的第一個想法是使用基於角色的授權。之後,我發現this article關於如何將基於角色的授權的概念擴展到所謂的「基於活動」的授權。 但是,即使這種解決方案並不適合我的業務,因爲在我的代碼中,我必須有一個名爲GetAllHypermarkets
的函數,它沒有參數,它將返回用戶可以看到的所有大型超市。例如,對於用戶X,它將僅返回來自L.A的大型超市。我如何實現這一目標?