Я работаю над приложением Windows на C # (.NET 4.0) и мне нужно что-то для реализации некоторых базовых правил ACL или, более конкретно, применения определенных конфигураций в зависимости от типа пользователя.
Приложение имеет лицензионные ключикоторые мы можем использовать для определения типа пользователя (например, «Пользователь», «Установщик», «Инженер») среди других элементов информации.
В зависимости от типа пользователя будут отображаться определенные функции, меню, кнопки и данные дисплея.разные.Я мог бы просто показать и скрыть эти элементы в приложении на основе типа пользователя, но у нас есть матрица разрешений, которая определяет разрешения, поэтому я хотел бы создать ACL, чтобы мы могли легко проверять матрицу в коде приложения.
Я осмотрелся, но большая часть ACL и кода безопасности в пространстве имен System.Security, похоже, созданы для ACL для Windows и файловой системы.
Может кто-нибудь порекомендовать какие-либо существующие классы (желательно бесплатные), которые реализуют простые ACL в C #.
Мне просто нужно быть в состоянии сделать что-то вроде этого:
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, чтобы определить, как выглядит графический интерфейс и какие параметры доступны, когда программа загружается на основеключ.
Это достаточно легко создать, но если это уже сделано, то это даже лучше.