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