0
考慮一下衆所周知的包含課程和教師的示例數據模型。一門課程有一位教練有很多課程。現在假設我們想將此模型基於具有用戶和角色的ASP.NET Identity模型。直接的方法是讓教師繼承ASP.NET身份用戶。但是,假設我們希望學校的看門人也是系統的用戶。而且,沒有什麼能阻止教練在下午成爲看門人。爲每個用戶分配一個角色是不好的做法嗎?
沒有多重繼承,所以你不能是InstructorUser和JanitorUser。如果用戶的角色是教師,那麼用戶只有課程,所以IMO不是一個乾淨的方法讓每個用戶與課程有關係(他可能畢竟不是教師)。我正在考慮爲每個用戶創建一個單獨的InstructorRole
實例(從IdentityRole
繼承),如果他是一名講師。
我看到簡單的例子有一些通用角色,比如「admin」或「guest」。至少爲每個用戶分配一個角色是不好的做法?
這些角色的目的是存儲用戶擁有的屬性/關係,當且僅當他假設該角色。考慮到這一要求,您將如何對其進行建模而沒有無限數量的角色? –
如果這些是用戶的屬性,爲什麼不把它們作爲'* User'對象的實際屬性?身份可以用很少的努力做到這一點。或者,如果每個用戶需要一組不同的屬性,則將它們存儲爲索賠 - 這些需要較少的維護。 – trailmax