C# MVC 5 中的用户权限/类型逻辑

User permission / type logic in C# MVC 5

我正在开发一个使用 MVC 5 的小项目。我有一个显示给定项目信息的 Projects/Details 页面。每个项目有多个成员,可以有 3 种成员类型。这些类型在页面上具有不同的信息和功能。我当前的临时解决方案是基本的,在我的视图中,我有一个 if 语句来检查登录用户的类型并相应地显示部分视图。对我来说,这个解决方案感觉有点 "hacky",我相信有更好的方法。所以我的问题是:您将如何实现此类功能?

谢谢。

您可能希望通过三种方式处理此问题。

1) 即使您认为您提出的解决方案是"hacky",它实际上也不是一个坏主意。我个人在一个项目中做到了。我根据用户的角色创建了部分视图;但是,您会向视图添加额外的业务逻辑。尝试使用它进行试验,看看它在部署时的表现如何。这应该是您的第一次尝试,因为它实际上是您的想法,并且通过试验您会学到很多东西。

2) 您是否尝试过在控制器中检查用户角色,并根据该角色返回特定视图?在这种情况下,业务逻辑将保留在控制器中,这被认为是一种很好的做法。

3) 即使我不知道您是在使用 ORM (Entity Framework) 还是直接连接到 SQL 数据库,请尝试使用存储过程检索成员的角色并检查因为它在数据库处理程序中的角色 class。

如您所见,可通过三个选项检查成员的角色。

最后,我建议您阅读有关 claims/roles-based 授权的内容。它可能对你以后的项目有帮助:

https://www.c-sharpcorner.com/article/Asp-Net-mvc5-role-base-accessibility/