gpt4 book ai didi

c# - C# Windows 应用程序中基于许可证的配置

转载 作者:行者123 更新时间:2023-11-30 17:16:01 24 4
gpt4 key购买 nike

我正在使用 C# (.NET 4.0) 开发 Windows 应用程序,需要一些东西来实现一些基本的 ACL 规则,或者更具体地说,根据用户类型应用某些配置。

该应用程序具有许可证 key ,我们可以使用这些 key 来确定用户类型(即用户、安装人员、工程师)以及其他信息。

根据用户类型,某些功能、菜单、按钮和显示数据会有所不同。我可以根据用户类型硬编码在应用程序中显示和隐藏这些元素,但我们有一个定义权限的权限矩阵,所以我想创建一个 ACL,这样我们就可以轻松地审计应用程序代码的矩阵。

我环顾四周,但 System.Security 命名空间中的许多 ACL 和安全代码似乎都是为 Windows 和文件系统 ACL 制作的。

有人可以推荐在 C# 中实现简单 ACL 的任何现有类(最好是免费的)。

我只需要能够做这样的事情:

ACL acl = new ACL();
acl.addRole("User");
acl.addRole("Manufacturer");

acl.addResource("SpecialButton");

acl.deny("SpecialButton");
acl.allow("SpecialButton", "Manufacturer");

// so later in my app I can do

theUserType = "Manufacturer";
// ...
if (acl.isAllowed(theUserType, "SpecialButton")) {
SpecialButton.Visible = true;
}

我不想试图阻止人们在运行时篡改代码,如果他们想竭尽全力去做那件事,那么他们可以,但我想要一种简单的方法来创建和查询 ACL确定 GUI 的外观以及根据 key 加载程序时可用的选项。

创建它很容易,但如果已经完成,那就更好了。

最佳答案

你说的真的不多。

你有角色,角色有属性。单个属性可能出现在一个或多个角色中。很简单。

许可证 key 定义了使用中的角色。从那里加载属性列表,它可以是独立的字符列表(“OPENCONTACT”、“EDITCONTACT”、DELETECONTACT)或名称值对(100=OPENCONTACT、101=EDITCONTACT 等)

虽然您可以为此使用 AzMan,但它比听起来您需要的要多一些。

角色/属性列表可以作为在运行时加载的加密资源提供...

关于c# - C# Windows 应用程序中基于许可证的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7576366/

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