Олицетворение и удостоверения в IIS 7

Пытаюсь привыкнуть к II7, давно поработав с IIS6.

В IIS 6 я бы установил <identity impersonate="true"/> в web.config и удостоверился, что применил правильные разрешения NTFS к учетной записи IUSR_ [MACHINENAME], если для папки требуются разрешения не только на чтение.

В IIS 7 у меня возникают проблемы с дублированием этой настройки, не прибегая к применению слишком большого количества разрешений.

Если я использую <identity impersonate="true"/> в IIS 7, Environment.Username сообщает мне, что я действительно выдаю себя за учетную запись IUSR, которая является новым эквивалентом. Однако, если я вхожу в административную часть веб-сайта с использованием проверки подлинности с помощью форм, он выдает себя за другое лицо, чем я ожидал.

С NetworkService, установленным в пуле приложений:

  • не авторизован: IUSR, не выдаёт себя за: [MACHINENAME] $
  • вошел в систему: [MACHINENAME] $, не выдавая себя за: [MACHINENAME] $

Если LocalService установлен в пуле приложений:

  • не авторизован: IUSR, не выдаёт себя: LOCAL SERVICE
  • вошел в систему: LOCAL SERVICE, не выдавая себя за: LOCAL SERVICE

Если я дам учетной записи IIS_IUSRS разрешения NTFS, я смогу заставить все работать нормально, но это кажется странным. Как я могу всегда выдавать себя за учетную запись IUSR? Или я должен дать разрешения NTFS для IIS_IUSRS?

Я был бы признателен за хорошее объяснение этого изменения в IIS7 - я поискал и не нашел объяснения этого использования с проверкой подлинности с помощью форм.


person ScottE    schedule 03.09.2010    source источник
comment
Привет @ScottE, ты решил эту проблему?   -  person Vladut    schedule 19.09.2016


Ответы (2)


Вот отрывок из технической статьи:

Если вы включите олицетворение для приложения ASP.NET, это приложение может работать в одном из двух разных контекстов: либо как пользователь, аутентифицированный IIS 7, либо как произвольная учетная запись, которую вы настроили. Например, если вы использовали анонимную проверку подлинности и выбрали запуск приложения ASP.NET от имени пользователя, прошедшего проверку подлинности, приложение будет запускаться под учетной записью, настроенной для анонимных пользователей (обычно IUSR). Аналогичным образом, если вы выбрали запуск приложения под произвольной учетной записью, оно будет работать в любом контексте безопасности, установленном для этой учетной записи.

Вот полный документ:

http://technet.microsoft.com/en-us/library/cc730708%28WS.10%29.aspx

person Cypher    schedule 06.09.2010
comment
Это не объясняет, что происходит, когда вы входите в систему с помощью проверки подлинности с помощью форм. Попробуйте мой пример выше, и вы увидите. - person ScottE; 07.09.2010

Изменения конвейера в IIS 7 обрабатывают аутентификацию совсем иначе, чем в предыдущих версиях. Большинство сценариев максимально возможны, но настройка отличается.

Вам следует взглянуть на эту запись о «критических изменениях» в IIS 7.0. Это должно помочь вам сузить круг вопросов, которые происходят.

http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/

надеюсь, это поможет

person Taylor Bird    schedule 03.09.2010
comment
Я это уже читал - ошибки не возникает. Это не критическое изменение, это понимание, которое я ищу. - person ScottE; 03.09.2010