每个 team_id 的 ASP.NET MVC 授权和角色

标签 asp.net asp.net-mvc

我正在使用 ASP.NET MVC 启动一个项目,但我不知道基于 team_id 处理授权和角色的最佳方法是什么。 我读到的每篇博客文章或论坛帖子总是谈论使用 asp.net 成员身份定义全局角色(“管理员”、“帮助台”、“编辑器”等...)或创建 CustomAuthorize 过滤器。我的应用程序中的问题是没有全局角色。用户将成为 team1 的经理,但无法编辑或查看 team2 的详细信息。 所以授权详细信息是: - 用户可以查看他的团队计划和队友的可用性,但无法看到其他团队 - 团队经理可以编辑团队详细信息,但不能编辑其他团队的详细信息 - 一个团队可以有 1 名或多名经理 - 一个用户可以是 1 个或多个团队的成员

ATM,我有 3 个表来处理这种关系。

teams --> teams_users <-- users
team_id   #team_id        user_id
          #user_id
          isManager?
作为最后的手段,我计划在用户登录时将用户当前的 team_id 和 isManager 状态存储在 session 变量中,并创建一个 CustomAuthorize 过滤器来检查 session team_id 是否与 model.team_id 相同。让我知道是否还有其他方法可以做到这一点。谢谢

最佳答案

最后,我创建了一条自定义路线:

/{team_id}/controller/action/{id}

{team_id} 在用户登录后设置,然后自定义过滤器会验证用户是否属于每个 Controller 顶部的团队。每当他更换团队时,{team_id} 就会更新。 此外,还有一个“isManager”过滤器来保护特定的经理操作,该操作将检查用户是否是当前团队的经理。 谢谢各位的解答

关于每个 team_id 的 ASP.NET MVC 授权和角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/807699/

相关文章:

c# - 使 control.Parsecontrol(HTMLString) 通过 Div 元素而不是 Br 元素过滤 Literalcontrol

javascript - 页面无故刷新

c# - 无法从特定角色中删除用户

javascript - 数据模型未在 Controller 中反序列化

c# - Kendo UI MVC 网格选择更新单独的控件

.net - 我可以在.NET中设置IIS MIME类型吗?

ASP.NET 计划作业

javascript - 当 Controller 返回时,从 javascript 在新选项卡中打开 View

c# - ViewBag 属性在单元测试中始终返回 null

c# - razor @helper 返回什么类型?