gpt4 book ai didi

C# 基于角色的安全性

转载 作者:太空狗 更新时间:2023-10-29 17:55:37 26 4
gpt4 key购买 nike

我有一个包含我的数据库访问层的类库,我在所有使用该数据库的项目中都使用它,现在我想在这个库中集成安全性,这样我就可以为不同的安全角色返回不同的数据。使用 .NET 内置安全性实现此目的的最佳方法是什么?我正在考虑使用 System.Security.Permissions.PrincipalPermission,但我看不出它如何帮助我,因为任何使用我的库的人都可以像这样编写客户端应用程序

GenericIdentity genericIdentity = new GenericIdentity("User");
GenericPrincipal genericPrincipal = new GenericPrincipal(genericIdentity, new[] { "Administrator" });
Thread.CurrentPrincipal = genericPrincipal;

他们将通过我所有的主要许可要求

PrincipalPermission principalPermission = new PrincipalPermission(null, "Administrator");
principalPermission.Demand();

甚至没有验证。要么我不理解这种安全模型,要么它根本无法保护任何东西。

最佳答案

基于角色的安全性旨在作为库代码使用客户端选择的安全模型而无需了解实现的一种方式;这里的关键是您已经处于可以合理信任客户端安全模型的地步,并且您只想根据客户端做出的决定提供适当的选项(例如作为登录过程的一部分)。

如果您信任客户端,那么无论如何所有的赌注都会落空,因为他们可能只是使用反射将您的内部结构撕成碎片。在这种情况下,最好将该实现代码保密,例如通过以某种方式接受用户凭据的 Web 服务。然后他们只能是他们拥有凭据的帐户。

关于C# 基于角色的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4225466/

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