gpt4 book ai didi

c# - .NET 中的对象应该如何使用权限?

转载 作者:行者123 更新时间:2023-11-30 20:13:51 25 4
gpt4 key购买 nike

假设我有一个包含 Books 和 Users 的数据库,这些用户对书籍有一定的权限(如编辑、删除等)。现在我将编写如下所示的方法并将其公开为 API 和 WebService。

[WebMethod]
Book GetBook(User login, int id) {
if (!CheckLogin(login))
throw new Exception("Login error");

return new Book(id);
}

这看起来一切都很好,但是我修改了这本书怎么重新保存呢?在 Book 对象上放置一个 Save() 方法感觉是正确的,因为它(对象)应该照顾好自己。但是权限检查感觉不对。 (我不想让 Book 对象知道任何关于用户的信息)

我是否应该创建 SaveBook(Book book) 之类的方法来执行此操作?

如果某些用户具有某些权限,以这种方式检查无论如何是个好主意吗?对于 WebService,我可以想象它没问题,但我怀疑它是否被用作普通 API(程序集)。

最佳答案

您偶然发现了一种叫做“横切关注点”的东西……应用程序中必须协同工作但逻辑上属于分离的事物。日志记录是另一个常见示例。

面向方面的编程 (AOP) 提供了一种很好的模式,可以将安全性等问题与业务对象分开。在 .Net 上,PostSharp是常用的 AOP 工具。

关于c# - .NET 中的对象应该如何使用权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1259053/

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