在我們的項目管理應用程序,我們需要不斷的訪問權限(每個項目的每個用戶)在一個單獨的表中分貝。 IE瀏覽器。擴展Asp.Net身份IsInRole()方法
用戶A可以創建項目#1的任務, 用戶A只能讀取任務項目#2
要取得成功,我們加入了新的coloumn(專案編號)擴展我們AspNetUserRoles表。
默認情況下,在Razor視圖,我們可以檢查用戶角色與User.IsInRole("CanCreateTask")
。我們需要擴展這個方法,並且想要檢查特定項目Ie的用戶角色。 User.IsInRole("CanCreateTask", project.Id)
編輯:此外,我需要檢查用戶訪問的控制器project.Id
[Authorize(Roles = "CanCreateTask")]
難道網上的一些研究,但找不到任何解決辦法。
看一看[這個答案](http://stackoverflow.com/questions/31846452/claim-based-authorization-design-換有條件編輯操作進行中ASP淨MVC-A/31851128#31851128) –
@SamFarajpourGhamari,我讀了答案,並做一些研究。我明白,我可以編寫自定義的AuthorizeAttribute來做我想做的事情。但在另一[SO回答,(http://stackoverflow.com/questions/31464359/custom-authorizeattribute-in-asp-net-5-mvc-6)說:「我們不想讓你編寫自定義授權屬性如果你需要這樣做,我們做錯了,而你應該寫授權要求。「 。我真的失去了身份。什麼是最好的方式 – umki
答案是偉大的,我完全同意。但請記住基於Identity v3和ASP.Net Core(v5)的答案,所以很遺憾地提到了方法,即授權要求,並未在Identity 2中實現。因此,我認爲對於當前版本的Identity,只要您擴展* *當前授權屬性,而不是從頭開始編寫自己的授權屬性**,這很好。 –