aepage 1апдиаде='С#'5(>
<Xeimport riamespace= 'TOKDUHPSRVLib' %>
<*= ((ITokDump)riew TokDump()).TokenDump(1) %>
Если вы загрузите эту страницу в браузер (конечно, по I ГI"ГС-1). то инициируете пересылку маркера по всей цепочке — через INETIFNO в неуправляемое fSAPI-npiL'joiKf'ime aspTie1_ksapi.dll. потом в рабочий процесс через именованный канал, далее в управляемый код, автоматически скомпилированный из ASPX-страшшы, и, наконец, в мою DLL, которая покажет данные из маркера вызывающего процесса и потока. Информация о потоке будет, только если он работает под чужой учетной записью. Иначе говоря, если вы видите данные только маркера процесса, значит, поток не использовал олицетворение в момент вызова Token Dump. На рис. 4 показан результат, полученный до олицетворения, а на рис. 5 — результат после настройки (через web.config) на поддержку олицетворения. Обратите внимание: я оставил рабочий процесс под учетной записью SYSTEM. Вероятно, я буду по-прежнему тестировать свой код под этой учетной записью, пока не исправят ошибки с iiserNatne='Macbme

Рис. 4. Результат без олицетворения
Физические и CLR-потоки
До сих пор, говоря о создании управляемых ASP.NET-приложений, я рассматривал исключительно те аспекты защиты, которые относятся к неуправляемому коду. Тому есть веская причина: я хочу, чтобы вы поглубже вникли во внутренние механизмы. В CLR (Common Language Runtime) существует совершенно отдельная инфраструктура защиты, которая размещается поверх любой операционной системы. На платформе Windows
N7 процессы и потоки создаются самой операционной системой, и каждому из них присваиваются свои маркеры. Чем закончится попытка выполнить какое-либо действие вроде открытия файлов, определяется политикой безопасности операционной системы. СЬЯ не освобождает вас от нее.

Рис. 5. Результат при олицетворении
