c# - 权限处理的模式/设计建议

标签 c# .net asp.net design-patterns permissions

我们的 (ASP.NET web) 应用程序中有一个相当复杂的权限处理系统。用户可以对不同种类的对象拥有特定的权限,一些权限甚至被打包到分配给用户的组/角色中。总而言之,这最终导致了一个相当复杂的困惑局面,为了确定用户是否可以执行/查看某些内容,您必须评估许多不同的权限来源,并且这是根据特定情况按需以某种方式完成的。

我的问题是(从高层次的角度来看)是否有一些建议/通用设计模式来处理一般的权限概念,并且可能还有您在架构中处理它们的经验。

最佳答案

我见过几种复杂的权限方案。它总是有理由的,但不幸的是,在某个时间点,它们都变得太复杂而无法处理,并被简化为更简单的东西。

我个人现在的结论是:坚持Role base access control ( RBAC ) 这是大家理解的唯一合理的。它在某种程度上是有限的,但对于大多数情况来说已经足够了。

此外,使用默认拒绝策略,即您只授予权限。同样,我看到系统具有相反的(默认允许)甚至可配置的默认策略(!),我认为这不合理。

关于c# - 权限处理的模式/设计建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2337001/

相关文章:

asp.net - 如何在更新面板刷新后执行 javascript(无法让 Sys.WebForms.PageRequestManager.getInstance().add_endRequest(); 工作)

c# - wpf 目标属性依赖

c# - 如何在枚举中添加和使用空值?

asp.net - Linq to sql 对象是否可序列化 session 状态?

c# - 使用C#从网站下载文件

.net - PowerShell 3 : Every Command Execution Results In "The type initializer [...] threw an exception" Error

c# - 加密从一页到另一页的数据传输

c# - EndpointNotFoundException - 404 - 通过 Visual Studio 在 IIS 中通过 HTTPS 托管 WCF 服务

c# - 如何连接Azure联合根数据库并在 Entity Framework DBContext中应用联合?

c# - UIAutomation 内存问题