这是一个非常笼统的问题,实际上..
我有一个用户类(不是每个应用程序吗?:)。某些用户可以对不同的实体执行操作,前提是他们具有适当的权限。放置授权逻辑(或任何适用于 2 个实例的逻辑)的最佳位置是什么?
如果我把它放在一个 User 类中,我最终会得到一堆 user.CanEditComment()
、user.CanEditMessage()
、user。 CanDoSomething()
等方法 - 可能是每个需要授权的实体的一些方法。看起来像方法困惑。
另一方面,我可以将这些方法放在实体中,例如 comment.CanBeEditedBy(user)
。但不知何故,它似乎也不太正确......
有什么建议吗?
谢谢!
最佳答案
另一种选择是模仿 ASP.NET 角色的作用并定义角色集合并将它们分配给用户。然后,您的功能可以向用户查询访问该功能所需的角色。您的用户类只需要一个方法 HasRole(string roleName)
,您的功能控制它们自己的访问。
关于c# - 在哪里放置授权方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8584053/