Разница между идентификацией ApplicationPool, анонимной идентификацией, идентификацией ProcessModel, идентификацией олицетворения и идентификацией потока - PullRequest
2 голосов
/ 18 июля 2011

Я немного запутался по поводу различных идентификаторов в ASP.NET и IIS.Может ли кто-нибудь сказать мне точную разницу между идентификацией пула приложений, анонимной идентификацией, идентификацией ProcessModel, идентификацией олицетворения и идентификацией потока?Пожалуйста, также скажите мне, когда asp.net использует какую личность?

Ответы [ 2 ]

3 голосов
/ 18 июля 2011

IIS - это веб-сервер, на котором может размещаться активный / пассивный контент, отличный от ASP.NET (например, классический asp, php, статические файлы и т. Д.). Идентификация пула приложений определяет пользователя, под которым будет выполняться запрос с точки зрения IIS. Поэтому, когда статические файлы (html / image) будут обслуживаться, этот пользователь будет использоваться для доступа к файлам с диска. Много раз IIS будет передавать фактическое выполнение запроса другому обработчику (например, php-cgi или ASP.NET runtime и т. Д.). Это время выполнения может использовать разные идентификационные данные для запуска запроса. В случае проверки подлинности Windows IIS передает маркер пользователя Windows конкретному обработчику, и обработчик может выдавать себя за текущий запрос на выполнение под идентификатором этого аутентифицированного пользователя. Классический ASP был одной из таких систем. В этих случаях, когда пользователь не аутентифицирован (то есть анонимен), будет использоваться идентификация анонимного пользователя.

В случае ASP.NET конфигурация по умолчанию будет запускать запрос под идентификатором пула приложений. Однако, используя конфигурацию, вы можете указать во время выполнения ASP.NET выдавать себя за имя текущего пользователя. Вы также можете настроить для олицетворения запроса под конкретным идентификатором, настроив его как таковой - обычно это делается, когда коду приложения необходимо иметь определенные права доступа, такие как доступ к общим папкам, сетевым ресурсам и т. Д.

2 голосов
/ 19 июля 2011

Идентификация модели процесса - это только IIS 5. *.В IIS 6+ его эквивалентом является идентификатор пула приложений.

Когда создается рабочий процесс, в качестве идентификатора процесса используется идентификатор модели / пула приложений.

Когда разрешен анонимный доступ,Анонимная идентификация используется как идентификация потока для всех потоков, которые обрабатывают входящие запросы внутри рабочего процесса.Идентификационные данные других потоков зависят от того, как они создаются, и прозрачны для разработчиков / конечных пользователей.

Когда используется другой метод аутентификации, такой как аутентификация Windows, идентификаторы рабочих потоков используют аутентифицированные идентификационные данные пользователя (каждый входящий запросбыть от аутентифицированного пользователя, тогда идентификация этого пользователя используется для потока, который обрабатывает запрос).

Олицетворение гораздо сложнее, как описано в

http://msdn.microsoft.com/en-us/library/aa376391(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/ff647404.aspx

Это меняет контекст безопасности, который не является простой для понимания концепцией Windows, которую вы можете извлечь из великих книг или из экспериментов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...