gpt4 book ai didi

c# - ASP.NET:权限/身份验证体系结构

转载 作者:太空狗 更新时间:2023-10-29 18:28:31 25 4
gpt4 key购买 nike

我正在研究根据以下要求在我的 ASP.NET 应用程序中构建身份验证

  • 一个用户只有一个角色(即管理员、销售经理、销售......)
  • 角色具有一组权限,可以对现有对象的子集进行 CRUD 访问。 IE。“Sales 对对象类型“Products”具有 CREAD、READ、WRITE 权限,但没有 DELETE”
  • 不知何故,我喜欢将权限置于具有继承性的层次结构中,这样我(即管理员)就不需要指定所有可用对象。
  • 系统必须能够快速回答“用户 X 是否有权对对象 Z 执行 Y”的问题
  • 所有数据库管理 (MSSQL),在 C#/ASP.NET 中实现

我想获得有关这些要求的反馈?任何想法如何使用 ASP.NET 框架(尽可能)实现这个? (不过,我也很想知道如何在没有成员(member)资格的情况下实现这一目标)

最佳答案

我认为您在这里需要做的是在您的业务对象或 Controller 中实现一组权限查询方法。示例:CanRead()、CanEdit()、CanDelete()

当页面呈现时,它需要查询业务对象并确定用户授权的功能,并根据此信息启用或禁用功能。反过来,业务对象可以使用角色或其他数据库查询来确定事件用户的权限。

我想不出一种方法来以声明方式集中定义这些权限。它们需要分配到功能的实现中。但是,如果您想要改进设计,您可以使用依赖注入(inject)将授权方插入到您的业务对象中,从而使实现保持独立。

Rocky Lhotka 的书中有一些使用此模型的代码。新版本不在 Google 中还没有。

关于c# - ASP.NET:权限/身份验证体系结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/380336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com