样品.NET C#MVC项目使用实体框架,数据库优先,多层架构和基于角色的安全性



是否有"官方"或"更好"的方法来实现。Net C#MVC项目使用实体框架,数据库优先,多层架构和基于角色的安全性?

我使用数据库优先的实体框架做了一些MVC项目。因为项目相对简单,所以每当需要查询时,我都会在控制器中创建实体,直接执行LINQ查询。现在,如果我想实现多层架构,这是否意味着我需要重构所有这些,并将所有查询代码分离到一个服务层中?即使是一个非常简单的查询?

至于基于角色的安全性,通常情况下,用户界面因角色而异。例如,对于admin,所有按钮都应该显示出来。但对于普通用户,也许我们只想显示一个按钮。在这种情况下,我通常在视图中使用剃刀语法,并在控制器中再次检查角色。这是正确的方法吗?

我想知道是否有一些示例项目可以说明在这些情况下如何做到这一点。经过一番搜寻,我找不到他们。

感谢

这听起来像是很多不相关的问题。

  • 是的,对于任何复杂的解决方案,您确实需要将所有数据库逻辑移出控制器层
  • 有很多方法可以构建您的应用程序和不同的设计理念。你可以从这个答案中找到一些想法,但在现实世界中,选择正确的体系结构是一个难题,没有一刀切的解决方案。您必须考虑功能性和非功能性需求、可维护性/可扩展性需求、最终用户/消费者的能力和期望,甚至用户的个性。建立一个好的例子是不可能的——你可以复制并应用到任何地方
  • 如果你使用的是基于角色的安全性,检查视图是可以的。决定是否显示该按钮是一个UI问题,所以最终你会在Razor视图中得到If语句。不同的人可能会争论你是应该直接在那里检查角色,还是在模型上存储一些东西来确定应该显示什么或不应该显示什么,但最终结果几乎是一样的

最新更新