Теперь более подробно рассмотрим другие классы личностей. Сейчас в .NET Framework есть четыре таких класса:
Обратите внимание, что свойства интерфейса I Identity доступны только для чте-"ния и поэтому не могут быть изменены.
Даже если ваши пользователи не аутентифицированы, вы все равно можете получить Windowsldentity для любого потока. Экземпляр Windowsldentity для текущего пользователя можно получить, используя статический метод Windowsldentity:: GetCurrent. И тогда из этого экземпляра Windowsldentity можно с помощью конструктора WindowsPrincipal получить экземпляр WindowsPrincipal. Ну, а что представляет собой эта личность, мы обсудим в следующем разделе.
Среди примеров этой главы не было варианта программы HotelBroker, который нельзя запускать, если у вас нет роли HotelBrokerAdmin. Однако нужные изменения в предыдущем варианте вы можете сделать сами. В качестве руководства используйте следующий код:
AppDomain *ap = AppDomain::CurrentDomain; ap->SetPrincipalPolicy(
PrincipalPolicy::WindowsPrincipal) ; IPrincipal *ip;
ip = Thread::CurrentPrincipal;
String *hotelAdminRole = "HPDESKTOP\\HotelAdmin"; // Строка if(!ip->IsInRole(hotelAdminRole)) {
MessageBox::Show(
"Sorry. You must be a Hotel Administrator.",
// "Жаль. Вы должны быть Администратором гостиницы.",
"Acme Customer Management System",
// "Система управления Клиентами Acme ",
MessageBoxButtons::ОК,
MessageBoxIcon::Exclamation); // Восклицательный знак return 0; }