Как сделать «безопасность» - атрибуты на классах в C #? - PullRequest
3 голосов
/ 19 декабря 2011

Я хочу создавать настраиваемые атрибуты для классов, чтобы ограничивать тех, кто их вызывает.

Например:

[Permission("Admin")]
public class MyData {
....

Как это сделать? Поэтому я действительно хочу сделать что-то вроде Permission-класса.

Ответы [ 3 ]

3 голосов
/ 19 декабря 2011

Вы либо используете уже существующие, либо пишете свои и подключаете их к архитектуре Code Access Security. Это было очень давно, поэтому простой поиск в Интернете дает вам следующее:

Код доступа к безопасности

Создание собственных прав доступа к коду

Вырезать из ссылки выше:

Реализация пользовательского разрешения на доступ к коду включает в себя следующее шаги, некоторые из которых являются необязательными. Каждый шаг описан в отдельная тема.

  1. Дизайн Permission класса.
  2. Реализация интерфейсов IPermission и IUnrestrictedPermission.
  3. Реализация интерфейса ISerializable, если это необходимо для производительности или для поддержки специальных типов данных.
  4. Обработка XML-кодирования и декодирования.
  5. Добавление поддержки декларативной безопасности путем реализации класса Attribute.
  6. Требуйте специального разрешения для вашего разрешения, где это необходимо.

На самом деле вам интересны шаги 1, 2, 5 и 6.

0 голосов
/ 19 декабря 2011

Разрешение будет наследоваться от атрибута.Затем вам нужно будет реализовать код для проверки класса на наличие этих атрибутов перед вызовом класса / метода..NET Framework уже имеет эту встроенную функциональность. SecurityPermissionAttribute и FileIOPermissionAttribute - это две реализации, которые вы, возможно, захотите рассмотреть перед развертыванием своей собственной.

0 голосов
/ 19 декабря 2011

Пользовательские атрибуты MSDN

Вот ссылка на то, что необходимо для создания пользовательских атрибутов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...