c# - 在哪里放置授权方法?

标签 c# asp.net-mvc-3 authorization

这是一个非常笼统的问题,实际上..

我有一个用户类(不是每个应用程序吗?:)。某些用户可以对不同的实体执行操作,前提是他们具有适当的权限。放置授权逻辑(或任何适用于 2 个实例的逻辑)的最佳位置是什么?

如果我把它放在一个 User 类中,我最终会得到一堆 user.CanEditComment()user.CanEditMessage()user。 CanDoSomething() 等方法 - 可能是每个需要授权的实体的一些方法。看起来像方法困惑。

另一方面,我可以将这些方法放在实体中,例如 comment.CanBeEditedBy(user)。但不知何故,它似​​乎也不太正确......

有什么建议吗?

谢谢!

最佳答案

另一种选择是模仿 ASP.NET 角色的作用并定义角色集合并将它们分配给用户。然后,您的功能可以向用户查询访问该功能所需的角色。您的用户类只需要一个方法 HasRole(string roleName),您的功能控制它们自己的访问。

关于c# - 在哪里放置授权方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8584053/

相关文章:

php - laravel Auth::login($user) 总是返回 401 Unauthorized

c# - Visual Studio 银光

c# - zlib 的 gzip 压缩和 .NET 的 GZipStream 使用的压缩有什么区别?

c# - ASP.NET Html.ListBoxFor 在页面加载时始终选择所有选项

c# - 从逗号分隔的数字列表中删除数字

c# - 将值传递给 Controller ​​方法时出错

c# - 授权整个安全组在 ASP.Net MVC 中执行操作

c# - 限制对某些 .aspx 页面的访问

jquery - 有人使用 jquery flexigrid 和 ASP.NET MVC3 吗?

asp.net-mvc-3 - 在 ASP.Net MVC3 项目中使用 jquery datepicker