Затем мы меняем политику принципала.
Затем мы меняем политику принципала. Вместо заданной по умолчанию UnauthenticatedPrincipal задаем политику WindowsPrincipal. Это значит, что объекты принципала и личности будут создаваться на основе предоставленного пользователем операционной системы опознавательного знака текущего потока. Кроме того, это означает, что роли будут задаваться на основе групп пользователей операционной системы.
AppDomain *ap = AppDomain::CurrentDomain; ap->SetPrincipalPolicy!
PrincipalPolicy::WindowsPrincipal); Console::WriteLine(
"AppDomain Principal Policy changed to
WindowsPrincipal");
// "Политика принципала AppDomain изменена на
// WindowsPrincipal");
Далее мы получаем принципал текущего потока и проверяем, является ли он WindowsPrincipal. Так как пример RoleBasedSecurity является (консольным) Windows-приложением, то свойству CurrentPrincipal должен соответствовать класс
WindowsPrincipal.
IPrincipal *ip;
ip = Thread::CurrentPrincipal; // Поток
WindowsPrincipal *wp =
dynamic_cast<WindowsPrincipal *>(ip); if (wp == 07
Console::WriteLine(
"Thread::CurrentPrincipal is NOT a WindowsPrincipal"); // "Поток:: CurrentPrincipal - HE WindowsPrincipal"); else
Console::WriteLine(
"Thread::CurrentPrincipal is a WindowsPrincipal"); // "Поток:: CurrentPrincipal - WindowsPrincipal");
Объект личности выполняет реализацию интерфейса I Identity. У этого интерфейса имеется три свойства:
Name (имя) — строка, относящаяся к личности. Общеязыковая среда выполнения CLR получает его от операционной системы или от средства доступа, используемого для опознавания. Таким средством доступа может быть, например, ASP.NET;
IsAuthenticated — логическое значение, указывающее, был ли пользователь опознан;
AuthenticationType — строка, которая указывает, какое опознавание использовалось операционной системой или средством доступа. Типами опознавания являются, например, Basic (Основной), NTLM, Kerberos (Цербер), Forms (Формы) или Passport (Паспорт).
Содержание Назад Вперед