Книга: C# для профессионалов. Том II
Система безопасности на основе декларативной роли
Система безопасности на основе декларативной роли
Так же, как в случае с системой безопасности доступа к коду, можно реализовать запросы безопасности на основе ролей ("пользователь должен быть в группе Administrators"), используя обязательные запросы (см. предыдущий раздел), или использовать атрибуты. Возможно декларативное определение требований к полномочию на уровне класса в таком виде:
using System;
using System.Security;
using System.Security.Principal;
using System.Security.Permissions;
namespace SecurityApp3 {
class Class1 {
static void Main(string[] args) {
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
try {
ShowMessage();
} catch (SecurityException exception) {
Console.WriteLine(
"Security exception caught (" + exception.Message + ")");
Console.WriteLine(
"The current principal must be in the local"
+ "Users group");
}
}
(PrincipalPermissionAttribute(SecurityAction.Demaid, Role =
"BUILTINUsers"));
static void ShowMessage() {
Console.WriteLine("The current principal is longed in locally");
Console.WriteLine("they are a member of the local Users group)");
}
}
}
Метод ShowMessage()
будет порождать исключение, если приложение выполняется не в контексте пользователя из группы локальных Users в Windows 2000. Что касается приложений Web, то учетная запись, под которой выполняется код ASP.NET, должна быть в группе, хотя в реальном мире определенно будут избегать добавления этой учетной записи в группу администраторов.
Если выполнить приведенный выше код с помощью учетной записи в локальной группе Users, то вывод будет таковым:
The current principal is logged in locally
(they are a member of the local Users group)
Дополнительную информацию о системе безопасности на основе ролей в .NET можно найти в документации MSDN для пространства имен System.Security.Principal
.
- Система безопасности на основе ролей
- Система безопасности InterBase
- Роли
- Общие рекомендации по безопасности
- Что делать, если при установке принтера появляется сообщение Невозможно завершение операции. Подсистема печати недоступн...
- Конфигурация безопасности для базы данных
- 7 Система Цикл: долгосрочные цели
- 3.3.1. Теневые пароли
- 3. Система конкурентных продаж (продажи по методу КЛИН)
- Роли категорий
- 3.4 Сетевая файловая система
- 3.7 Система Microsoft Exchange 2000 и NAS