Замена объекта Principal
Обновлен: Ноябрь 2007
Приложения, предоставляющие службы проверки подлинности, должны иметь возможность заменять объект Principal для данного потока. Система безопасности должна обеспечивать возможность замены объектов Principal, так как в случае подключения вредоносного объекта Principal он становится угрозой для безопасности приложения, давая неверную информацию об удостоверении или роли. Поэтому приложениям, которым необходима возможность заменять объект Principal, для контроля участников должен предоставляться объект System.Security.Permissions.SecurityPermission. (Обратите внимание, что для выполнения проверок безопасности на основании ролей и для создания объектов Principal это разрешение не требуется.)
Чтобы заменить текущий объект Principal, необходимо выполнить следующие действия.
Создайте замещающий объект Principal и связанный объект Identity (обычно это делается после выполнения проверки подлинности).
Присоедините объект Principal к контексту вызова, как показано в следующем примере кода.
Thread.CurrentPrincipal = principalObject;
Thread.CurrentPrincipal = principalObject