我正在使用MVC 5进行小型项目开发。我有一个“项目/详细信息”页面,其中显示了给定项目的信息。每个项目都有多个成员,并且可以有3种成员类型。这些类型在页面上提供了不同的信息和功能。我当前的临时解决方案是基本的,在View中,我有一个if语句来检查登录用户的类型并相应地显示部分视图。对我来说,这种解决方案有点“ hacky”,我敢肯定有更好的方法。所以我的问题是:您将如何实现这种功能?
谢谢。
答案 0 :(得分:0)
您可能想通过三种方式来解决这个问题。
1)即使您认为建议的解决方案是“ hacky”,实际上也不是一个坏主意。我个人在一个项目中做到了。我根据用户的角色创建了部分视图;但是,您将向视图添加额外的业务逻辑。尝试对其进行试验,并查看其部署后的性能。这应该是您的首次尝试,因为它实际上是您的想法,通过试验您将学到很多东西。
2)您是否尝试过在控制器中签入用户角色,并根据该角色返回特定视图?在这种情况下,业务逻辑将保留在控制器中,这被认为是一种好习惯。
3)即使我不知道您是使用ORM(实体框架)还是直接连接到SQL数据库,也请尝试使用存储过程检索成员的角色,并检查其在DB处理程序类中的角色。
您可能会看到,有三个选项可以检查成员的角色。
最后,建议您阅读有关基于索赔/角色的授权的信息。它可能会在将来的项目中为您提供帮助:
https://www.c-sharpcorner.com/article/Asp-Net-mvc5-role-base-accessibility/