Что такое код iis #exec


Настройка аутентификации в IIS 8

IIS 8 поддерживает интегрированный режим ASP.NET, который помимо прочего объединяет конвейер обработки ASP.NET HTTP с конвейером обработки IIS HTTP. Это предоставляет в распоряжение богатейший набор новых возможностей, которые можно использовать в сочетании с имеющимися знаниями ASP.NET. Например, одна из них — это возможность применения аутентификации с помощью форм ASP.NET для других веб-приложений, сконфигурированных в IIS 8, которые не обязательно должны быть построены на ASP.NET.

Более того, IIS 8 использует файл web.config для хранения многих частей конфигурации веб-приложений внутри веб-сервера. Это означает возможность настройки многих параметров приложения с использованием либо консоли управления IIS 8, либо за счет непосредственной модификации файла web.config. Благодаря тесной интеграции средств конфигурирования ASP.NET и IIS 8, любые изменения, внесенные непосредственно в файл web.config, немедленно отражаются в консоли управления, и наоборот.

Давайте сначала рассмотрим возможности конфигурирования аутентификации с помощью форм из среды консоли управления IIS 8. Конфигурировать аутентификацию с помощью форм можно с использованием средства настройки аутентификации консоли управления IIS 8, как показано на рисунке ниже:

После разрешения аутентификации с помощью форм подобным образом также понадобится сконфигурировать необходимые правила авторизации. Наиболее важно добавить правило deny для анонимных пользователей с помощью средства конфигурирования авторизации в консоли управления IIS 8:

Обе конфигурационные настройки затрагивают файл web.config и веб-сервер берет эту информацию из web.config для определения собственного поведения, что видно в следующем фрагменте кода:

Вы заметите, что аутентификация с помощью форм, сконфигурированная IIS, как и следовало ожидать, находится в разделе . Но по умолчанию (и если вы ранее не добавили этого вручную), никаких правил авторизации там не будет. Как упоминалось ранее, не все опции конфигурации по умолчанию помещаются непосредственно в файл web.config. Авторизация URL — одна из таких опций конфигурации.

В любом случае унифицированная консоль управления очень хорошо продумана, так что настраивать безопасность IIS и ASP.NET посредством других инструментов нет необходимости. Многие опции по умолчанию сохраняются непосредственно в файле web.config. Как известно можно даже сконфигурировать IIS так, чтобы почти все опции помещались непосредственно в web.config. Однако, как упоминалось ранее, интеграция ASP.NET предоставляет множество возможностей при запуске IIS 8 в интегрированном с ASP NET режиме.

При запуске IIS 8 в интегрированном режиме (выбираемом по умолчанию) IIS использует канал обработки HTTP для обработки как основанных на ASP.NET HTTP-модулей, так и встроенных HTTP-модулей IIS 8.

Поскольку аутентификация с помощью форм реализована в виде HTTP-модуля ASP.NET, ее можно использовать для любого веб-приложения и виртуального каталога, сконфигурированного в IIS, который функционирует в интегрированном режиме. Это значит, что аутентификацию с помощью форм можно применять вместе с приложениями других типов, такими как статические HTML-сайты, классические приложения ASP или даже приложения PHP. Все, что потребуется сделать — это настроить веб-приложение как виртуальный каталог и затем сконфигурировать аутентификацию с помощью форм через консоль управления IIS 8. Это автоматически добавит к приложению конфигурацию web.config.

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

Теперь просто откройте доступ к папке, где расположен PHP-файл (например, test.php), как к виртуальному каталогу или веб-приложению внутри IIS. После этого можно сконфигурировать аутентификацию с помощью форм и настройки авторизации, как было описано ранее.

Поскольку IIS 8 органично поддерживает аутентификацию с помощью форм, полагаясь на HTTP-модуль аутентификации с помощью форм, поставляемый в ASP.NET, она работает точно также, как работала бы с приложением ASP.NET. Все что нужно — это удостовериться в наличии необходимой страницы входа, которая сама по себе является страницей ASP.NET. Также должны быть доступны части, необходимые для страницы ASP.NET, внутри веб-приложения (или в другом виртуальном каталоге, если применяются cookie-наборы аутентификации между приложениями).

На рисунке ниже показана страница PHP вместе со страницей входа ASP.NET в виртуальном каталоге. Аутентификация с помощью форм просто конфигурируется через управляющую консоль IIS 8, как было описано ранее:

Однако просто поместить содержимое PHP вместе с основанными на ASP.NET страницами входа и сконфигурировать аутентификацию с помощью форм еще недостаточно. Когда вы попытаетесь выполнить переход на страницу PHP, аутентификация с помощью форм пока работать не будет. В зависимости от аутентификации и правил авторизации, вы либо получите ответ «unauthorized» («неавторизовано»), либо сможете переходить к странице PHP без приглашения на вход.

Причина в том, что по умолчанию управляемые HTTP-модули, в том числе и модуль аутентификации с помощью форм, настроены так, что выполняются только по запросу кода, основанного на ASP.NET. Поэтому чтобы заставить работать аутентификацию с помощью форм, потребуется изменить это поведение, вызвав средство конфигурации HTTP Modules в консоли управления IIS 8 когда ваше веб-приложение выбрано. Затем нужно отобразить детальную информацию для модуля FormsAuthentication, сконфигурированного в списке модулей, как показано на рисунке ниже:

Открыв средство конфигурации HTTP Modules, найдите FormsAuthentication и дважды щелкните на нем или выберите ссылку Edit (Правка) в панели задач справа. В открывшемся диалоговом окне снимите отметку с флажка Invoke Only for Requests to ASP.NET Applications or Managed Handlers (Вызывать только для запросов к приложениям ASP.NET или управляемым обработчикам), как показано на рисунке ниже:

После завершения этой настройки при обращении к странице PHP в каталоге веб-приложения запрос будет аутентифицирован посредством аутентификации с помощью форм ASP.NET. Конфигурационный файл web.config для веб-приложения будет выглядеть следующим образом:

Конфигурация FormsAuthenticationModule важна. Флажок в неотмеченном состоянии задает preCondition=»», которое по умолчанию установлено в managedHandler.

IIS 7.0: краткая инструкция для системного администратора. Часть 1 – пpoверка результатов установки.

Продолжаем говорить об процедуре установки веб сервера под управлением IIS 7.0 на Windows Server 2008, которая была рассмотрена в предыдущем посте.

Теперь перейдем к проверке результатов установки IIS 7.0. Самый простой вариант проверить, работает ли веб сервер, особенно – находясь за локальной консолью, это обратиться из любого веб-браузера по адресу http://localhost/. Далее, проверить с локальной и удаленной машины по IP-адресу.

При установке IIS 7.0 создается веб сайт по умолчанию, сконфигурированный на ответ при любом URL-запросе, поступившем на порт 80 любого сетевого интерфейса сервера, на котором установлен IIS 7.0. Т.е. запрос браузера типа http://localhost/ должен быть обработан как запрос к веб сайту по умолчанию. Содержимое сайта по умолчанию представляет собой 2 файла – iisstart.htm и welcome.png (который отображается в iisstart.htm), которые и будут открыты клиентом. Поэтому результат обращения к localhost будет иметь следующий вид:

Теперь, если все хорошо (если «плохо» – поиск неисправностей и ошибок мы рассмотрим позже, в отдельном разделе), убедимся, что все модули, которые должны быть установлены по умолчанию – подключены и работают, а базовая конфигурация – отвечает нашим требованиям.

1. Основным инструментом управления IIS 7.0 является консоль Internet Information Services (IIS) Manager, которая устанавливается по умолчанию, вместе с ролью Web Server в Windows Server 2008 (IIS Management Console, раздел Management Tools при установки модулей). После соответствующей установки консоль управления IIS 7.0 можно найти, как дочернюю запись внутри раздела Web Server (IIS) в разделе ролей Server Manager, либо как пункт в разделе Administrative Tools меню Start, либо выполнив команду inetmgr (в командной строке или через пункт Run того же меню Start).

2. При старте консоль Internet Information Services (IIS) Manager открывается с «домашней страницей», на которой в виде панелей находится информация о том, к каким веб серверам и веб сайтам подключался пользователь консоли до этого (если консоль только установлена вместе с ролью Web Server (IIS), то в консоле присутствует запись только о локальном веб сервере), также присутствуют ссылки для выбора подключения к другим серверам, веб сайтам, веб приложениям и папкам, а также ссылки на внешние ресурсы, посвященные IIS.

Илон Маск рекомендует:  Что такое код winexe

3. Кроме того, на домашней странице присутствует панель новостей, которые подгружаются как новостная RSS-лента с сайта www.iis.net, если администратор нажимает на ссылку Enable IIS News. Новости, кстати, очень полезные, рекомендуется включать и использовать эту информацию в повседневной работе.

4. При подключении к какому либо веб серверу IIS 7.0 консоль Internet Information Services (IIS) Manager представляет его конфигурацию, как логическую структуру – уровень самого веб сервера, чьи настройки являются глобальными и распространяются по умолчанию на все веб сайты, пулы приложений и, сообственно, веб сайты со своими настройками. Эта конфигурационная иерархия, в виде разворачивающегося дерева, начинающегося с узла с именем (или IP) веб сервера, отображается в левой панели консоли Internet Information Services (IIS) Manager.

5. Если выбрать какой-то узел в дереве конфигурации, то в центральной панель консоли Internet Information Services (IIS) Manager будут отображены в виде отдельных иконок все параметры (а также – модули или списки), соответствующие конфигурации выбранного узла, а в правой панели – набор контекстных задач и операций, которые администратор (или пользователь) может выполнить над данным узлом.

6. Выбираем верхний узел, узел веб сервера, в котором представлены иконки, отвечающие за параметры работы модулей всего веб сервера, эти параметры наследуются по умолчанию для всех веб сайтов. Убеждаемся, что все необходимые модули установлены и отображены. Снимок экрана при установке конфигурации по умолчанию приведен ниже.

7. В правой панели при выборе узла веб сайта отображаются все операции, возможные для выполнения непосредственно с веб сервером (службами IIS в целом) в данном конексте – перезапуск, останов, запуск, переход к пулам приложений и сайтам.

8. Убеждаемся, что пулы приложений (Application Pools) сконфигурированы. Пулы приложений будут рассмотрены позже. Пулы являются дочерним узлом в дереве конфигурации для узла веб сайта. При установке по умолчанию создается только один пул – DefaultAppPool, в котором регистрируется одно приложение – сконфигурированный по умолчанию веб сайт, работу которого мы уже проверили. См. снимок экрана.

9. Ниже узла пулов приложений в дереве конфигурации находится узел веб сайтов (Sites), при выборе которого отображается список работающих на данном веб сервере веб сайтов. По умолчанию создается один веб сайт под названием Default Web Site с внутренним номером (ID) равным 1, «привязанный» на 80 порт всех IP-адресах всех сетевых интерфейсов к любому URL в запросе, и использующий в качестве домашнего каталога своего контента каталог с путем %SystemDrive%\inetpub\wwwroot (что при установленном Windows Server 2008 на диск C: соответствует C: \inetpub\wwwroot).

10. При выборе в левой панели консоли узла веб сайта (Default Web Site), также, как и в случае с выбором узла веб сервера, в центральной панели отображаются иконки для доступа к параметрам конфигурации различных модулей, на этот раз – конкретного веб сайта. Убеждаемся, что также, как и в случае со всем веб сервером, все необходимые модули представлены в центральной панели.

11. В правой панели консоли, аналогично панели для всего веб сервера, отображаются контекстные команды, правда, на этот раз их список серьезно расширен – старт/стоп/перезапуск процесса веб сайта, просмотр его базовых и расширенных настроек (а не параметров модулей), настройки привязки (адрес, порт, доменное имя – по сочетанию которых будет отвечать на запросы данный веб сайт) и т.п.

В принципе, для базовой проверки работоспособности и целостности установки данных шагов вполне достаточно. Но если вы хотите поближе познакомиться с «полным» набором настроек и конфигурацией «по умолчанию» – то можете проделать следующие шаги.

12. Выберите узел веб сервера в дереве конфигурации в левой панели консоли Internet Information Services (IIS) Manager. В центральной панели кликните на иконку Modules. В центральной панели откроется следующий полный список установленных по умолчанию модулей, представляющий из себя перечень .dll файлов.

13. Чтобы убедиться, что веб сервер будет работать только со статическими файлами (по умолчанию) или только с нужными вам расширениями – выберите снова узел веб сервера и в центральной панели кликните на иконку Handler Mappings. Откроется список «привязки» расширений вызываемых на веб сайте пользователем файлов и привязанных к данным расширениям модулям, выполняющим обработку данного вызова. Обратите внимание, что по умолчанию все файлы привязаны к модулю обработки статических файлов (т.е. запрос какого либо скриптового или исполнимого файла из домашнего каталога веб сайта не будет приводить к его исполнению на сервере, а лишь к передаче данного файла пользователю), а также к модулям документа по умолчанию и просмотра каталога. С этими модулями мы познакомимся позже.

14. И, наконец, для того, чтобы убедиться в безопасности веб сайта – проверьте параметры его аутентификации. Для этого выбираем иконку Authentication в той же центральной панели. По умолчанию никаких модулей аутентификации веб сервер (и веб сайты) не поддерживает. Т.е. все подключения для него анонимны. В чем безопасность? Это значит, что пользователям будет доступен только то содержимое домашних каталогов сайтов – файлы и подкаталоги – которые имеют NTFS разрешения для чтения «всем» (Everyone). В случае, если таких разрешений файл не имеет, пользователю будет отказано в доступе с соответствующей ошибкой 401. Если же пользователь попробует каким-то образом аутентифицироваться в процессе HTTP запроса на сервере – то поскольку никаких модулей аутентификации, кроме анонимного, на веб сервере не установлено – он снова получит соответствующую ошибку 401.

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

Итак, сервер установлен и его работоспособность проверена. Теперь достаточно поместить какой либо статический контент (файлы HTML, изображения, документы и файлы для выгрузки пользователями) в домашний каталог его сайта по умолчанию (напоминаю, что это в большинстве случаев C:\inetpub\wwwroot) – и веб сайт под управлением IIS 7.0 начнет работать. Ну, и конечно, для внешних сайтов – не забыть прописать их A-record в вашей доменной зоне на публичном DNS сервере.

В следующей части – установка IIS 7.0 в режиме командной строки, особенности работы IIS 7.0 на Server Core.

PHP exec в Windows с конфигурацией IIS

поэтому я прочитал около 10 ответов, и все, кажется, предлагают идеи, которые почему-то не работают.

Я пытаюсь выполнить простую командную строку, которая является «svn update», но она не работает и возвращает NULL

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

я попробовал несколько команд вроде

и оба работают .. infact chdir говорит точную позицию, где php-файл, выполняющий строку, хранится на ПК.

поэтому проблема в том, почему некоторые команды вроде этого:

не работает? это результаты и пустое значение, хотя внутри папки у меня есть несколько файлов и каталогов.

и почему, если я использую командную строку для перехода в папку, где хранится php-файл, и введите svn update, он работает и делает

любая помощь действительно оценена.


он чувствует, что у меня есть некоторые ограничения, налагаемые на настройку конфигурации, потому что, когда я пытаюсь использовать локальный с помощью apache, я могу получить большинство команд для работы (shell_exec, system, exec, даже без cmd / c)

мне удалось решить проблему ..

это то, что я сделал:

сначала проверьте, какое имя пользователя запущено для конкретного веб-сайта .. для этого выполните:

это вернет имя пользователя, за которым следует имя пользователя.

теперь на компьютере, на котором запущен веб-сервер

и предоставить полномочия администратора для имени пользователя whoami

это позволит вам, наконец, запустить любую команду, которую вы хотите использовать exec или system_exec

с другой стороны, продолжая свою команду SVN, я узнал, что у меня возникла еще одна проблема, связанная с тем, что при ее запуске он будет искать конфигурационный файл, находящийся под учетной записью администратора, и даст сообщение об ошибке:

Илон Маск рекомендует:  Парсер Avito скачать с использованием PHP Curl

для решения этой проблемы вам просто нужно указать в команде config_dir, выполнив следующие действия:

надеюсь, что это помогает другим, у которых есть проблемы, подобные тем, которые у меня были!

Вероятно, это проблема с правами системных пользователей. Я попробовал ваш пример:

На моем Windows7 с Xampp установлен, и он работал отлично. Однако с IIS «пользователь» может не иметь прав доступа к каталогу, с моей точки зрения, я думаю, что это может быть системный пользователь IIS-IUSR или что-то в этом роде.

Хорошо, основываясь на ваших ответах, я думаю, вы должны попробовать это:

Выполните свою команду с помощью исполняемого файла ‘svn.exe’ (замените [[местоположение местоположения]]). Возможно, ваш клиент имеет другое местоположение svn.exe, но вам придется это выяснить самостоятельно ��

Что сейчас происходит?

В exec также есть второй параметр, возможно, вы также должны взглянуть на него.

php + shell_exec() + IIS 6.0 = убитый_об_стену_программер

Из пхп скрипта пытаюсь запустить внешную программу при помощи shell_exec() (со всеми остальными случаями такая же бодяга). Все время показывать
Warning: shell_exec() [function.shell-exec]: Unable to execute ‘dir’

(на самом деле запускаю другое, но проблема в этой строчке).

Очень долго гуглил — толку ноль. Менял разрешения на cmd.exe, добавлял юзера IUSR_MyCompName со всеми правами.. добавлял эти права и на запускаемые программы..
Пытался добавлять php5isapi.dll в качестве фильтра в iis — никаких реакций.

Можт что не так ищу? не в ту сторону копаю?

Проблема еще в том, что сервер сразу продакшн.. девелопмента нет -(( знаю-знаюю фигня жуткая. Но это не в моей власти. Поэтому особо сильно развернуться нельзя.. и если я сейчас запорю вебсайт, то полторы тысячи рабтников обломятся при попытке зайти на внутренний веб-сайт.

Киньте в меня чем-нить полезным, плиз.. а то я ща повешусь -((

В чем разница между web.config executeTimeout и тайм-аутом IIS?

В чем разница между следующей записью в web.config:

И этот параметр в IIS 7.5 (веб-сайт по умолчанию > Дополнительные настройки > Пределы подключения):

Кажется, что executeTimeout не совпадает с тайм-аутом IIS. В чем разница?

connectionTimeout применяется к TCP-соединению между клиентом и сервером, а executionTimeout применяется к фактическому веб-запросу, который отправляется по этому соединению.

Из здесь на connectionTimeout :

Задает время (в секундах), которое ожидает IIS, прежде чем отключит соединение, которое считается неактивным.

Что могло стать причиной ASP.NET по ExecutionTimeout не быть исполнено под управлением IIS?

я пытаюсь устранить проблему, но я не в состоянии воспроизвести его локально под IIS, потому что неважно, как низко я поставил executionTimeout, запросы не время.

я пытался установить через web.config (через код (Page.Server.ScriptTimeout = 5;).

я бегу с двоичными файлами, которые были компилируется в режиме релиза, и debug=false находится в compilation.

FWIW, под Кассини (автономное развитие веб-сервера), то все работает как и ожидалось, на исходе того же каталога off точно сборки/конфигурационные файлы.

Любые идеи о том, что может быть причиной этого?

EDIT: Если это уместно, развития рабочей станции выполняется Win7/IIS7.

Размещение в службах IIS с использованием встроенного кода IIS Hosting Using Inline Code

Этот образец демонстрирует реализацию службы, размещенной в службах IIS, когда код службы находится в строках файла SVC и компилируется по требованию. This sample demonstrates how to implement a service hosted by Internet Information Services (IIS), where the service code is contained in-line in a .svc file and is compiled on demand. Код службы может также быть реализован непосредственно в файлах исходного кода, расположенных в каталоге \App_Code приложения, или он может быть скомпилирован в сборку, развернутую в каталоге \bin. Service code can also be implemented directly in source code files located in the application’s \App_Code directory, or compiled into assembly deployed in \bin. В этом примере такие приемы не демонстрируются. This sample does not demonstrate these techniques.

Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела. The set-up procedure and build instructions for this sample are located at the end of this topic.

Образцы уже могут быть установлены на компьютере. The samples may already be installed on your computer. Перед продолжением проверьте следующий каталог (по умолчанию). Check for the following (default) directory before continuing.

Если этот каталог не существует, перейдите к примерам Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4 , чтобы скачать все Windows Communication Foundation (WCF) WF WF и примеры. If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WF WF samples. Этот образец расположен в следующем каталоге. This sample is located in the following directory.

В этом примере показана типичная служба, которая реализует контракт, определяющий шаблон взаимодействия «запрос-ответ». The sample demonstrates a typical service that implements a contract that defines a request-reply communication pattern. Служба размещается в службах IIS, а весь код службы полностью содержится в файле Service.svc. The service is hosted in IIS and the service code is entirely contained in the Service.svc file. Служба активируется ведущим приложением и компилируется по требованию при поступлении первого сообщения, отправленного этой службе. The service is host-activated and compiled on-demand by the first message sent to the service. Предварительная компиляция не требуется. There is no pre-compilation necessary. Служба реализует контракт ICalculator , как показано в следующем примере кода: The service implements an ICalculator contract as defined in the following code:

Реализация службы выполняет вычисления и возвращает соответствующий результат. The service implementation calculates and returns the appropriate result.

При выполнении примера запросы и ответы операций отображаются в окне консоли клиента. When you run the sample, the operation requests and responses are displayed in the client console window. Чтобы закрыть клиент, нажмите клавишу ВВОД в окне клиента. Press ENTER in the client window to shut down the client.

Настройка, сборка и выполнение образца To set up, build, and run the sample

Чтобы создать выпуск решения на языке C# или Visual Basic .NET, следуйте инструкциям в разделе Building the Windows Communication Foundation Samples. To build the C# or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.

После построения решения запустите программу Setup. bat, чтобы настроить приложение ServiceModelSamples в IIS 7,0. After the solution has been built, run setup.bat to set up the ServiceModelSamples Application in IIS 7.0. Теперь каталог ServiceModelSamples должен отображаться как приложение IIS 7,0. The ServiceModelSamples directory should now appear as an IIS 7.0 Application.

Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе выполнение примеров Windows Communication Foundation. To run the sample in a single- or cross-computer configuration, follow the instructions in Running the Windows Communication Foundation Samples. Пример создания клиентского приложения, который может вызывать эту службу, см. в разделе как Создайте клиент. For an example on how to create a client application that can call this service, see How to: Create a Client.

Настройка аутентификации в IIS 8


IIS 8 поддерживает интегрированный режим ASP.NET, который помимо прочего объединяет конвейер обработки ASP.NET HTTP с конвейером обработки IIS HTTP. Это предоставляет в распоряжение богатейший набор новых возможностей, которые можно использовать в сочетании с имеющимися знаниями ASP.NET. Например, одна из них — это возможность применения аутентификации с помощью форм ASP.NET для других веб-приложений, сконфигурированных в IIS 8, которые не обязательно должны быть построены на ASP.NET.

Более того, IIS 8 использует файл web.config для хранения многих частей конфигурации веб-приложений внутри веб-сервера. Это означает возможность настройки многих параметров приложения с использованием либо консоли управления IIS 8, либо за счет непосредственной модификации файла web.config. Благодаря тесной интеграции средств конфигурирования ASP.NET и IIS 8, любые изменения, внесенные непосредственно в файл web.config, немедленно отражаются в консоли управления, и наоборот.

Илон Маск рекомендует:  Trim на perl

Давайте сначала рассмотрим возможности конфигурирования аутентификации с помощью форм из среды консоли управления IIS 8. Конфигурировать аутентификацию с помощью форм можно с использованием средства настройки аутентификации консоли управления IIS 8, как показано на рисунке ниже:

После разрешения аутентификации с помощью форм подобным образом также понадобится сконфигурировать необходимые правила авторизации. Наиболее важно добавить правило deny для анонимных пользователей с помощью средства конфигурирования авторизации в консоли управления IIS 8:

Обе конфигурационные настройки затрагивают файл web.config и веб-сервер берет эту информацию из web.config для определения собственного поведения, что видно в следующем фрагменте кода:

Вы заметите, что аутентификация с помощью форм, сконфигурированная IIS, как и следовало ожидать, находится в разделе . Но по умолчанию (и если вы ранее не добавили этого вручную), никаких правил авторизации там не будет. Как упоминалось ранее, не все опции конфигурации по умолчанию помещаются непосредственно в файл web.config. Авторизация URL — одна из таких опций конфигурации.

В любом случае унифицированная консоль управления очень хорошо продумана, так что настраивать безопасность IIS и ASP.NET посредством других инструментов нет необходимости. Многие опции по умолчанию сохраняются непосредственно в файле web.config. Как известно можно даже сконфигурировать IIS так, чтобы почти все опции помещались непосредственно в web.config. Однако, как упоминалось ранее, интеграция ASP.NET предоставляет множество возможностей при запуске IIS 8 в интегрированном с ASP NET режиме.

При запуске IIS 8 в интегрированном режиме (выбираемом по умолчанию) IIS использует канал обработки HTTP для обработки как основанных на ASP.NET HTTP-модулей, так и встроенных HTTP-модулей IIS 8.

Поскольку аутентификация с помощью форм реализована в виде HTTP-модуля ASP.NET, ее можно использовать для любого веб-приложения и виртуального каталога, сконфигурированного в IIS, который функционирует в интегрированном режиме. Это значит, что аутентификацию с помощью форм можно применять вместе с приложениями других типов, такими как статические HTML-сайты, классические приложения ASP или даже приложения PHP. Все, что потребуется сделать — это настроить веб-приложение как виртуальный каталог и затем сконфигурировать аутентификацию с помощью форм через консоль управления IIS 8. Это автоматически добавит к приложению конфигурацию web.config.

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

Теперь просто откройте доступ к папке, где расположен PHP-файл (например, test.php), как к виртуальному каталогу или веб-приложению внутри IIS. После этого можно сконфигурировать аутентификацию с помощью форм и настройки авторизации, как было описано ранее.

Поскольку IIS 8 органично поддерживает аутентификацию с помощью форм, полагаясь на HTTP-модуль аутентификации с помощью форм, поставляемый в ASP.NET, она работает точно также, как работала бы с приложением ASP.NET. Все что нужно — это удостовериться в наличии необходимой страницы входа, которая сама по себе является страницей ASP.NET. Также должны быть доступны части, необходимые для страницы ASP.NET, внутри веб-приложения (или в другом виртуальном каталоге, если применяются cookie-наборы аутентификации между приложениями).

На рисунке ниже показана страница PHP вместе со страницей входа ASP.NET в виртуальном каталоге. Аутентификация с помощью форм просто конфигурируется через управляющую консоль IIS 8, как было описано ранее:

Однако просто поместить содержимое PHP вместе с основанными на ASP.NET страницами входа и сконфигурировать аутентификацию с помощью форм еще недостаточно. Когда вы попытаетесь выполнить переход на страницу PHP, аутентификация с помощью форм пока работать не будет. В зависимости от аутентификации и правил авторизации, вы либо получите ответ «unauthorized» («неавторизовано»), либо сможете переходить к странице PHP без приглашения на вход.

Причина в том, что по умолчанию управляемые HTTP-модули, в том числе и модуль аутентификации с помощью форм, настроены так, что выполняются только по запросу кода, основанного на ASP.NET. Поэтому чтобы заставить работать аутентификацию с помощью форм, потребуется изменить это поведение, вызвав средство конфигурации HTTP Modules в консоли управления IIS 8 когда ваше веб-приложение выбрано. Затем нужно отобразить детальную информацию для модуля FormsAuthentication, сконфигурированного в списке модулей, как показано на рисунке ниже:

Открыв средство конфигурации HTTP Modules, найдите FormsAuthentication и дважды щелкните на нем или выберите ссылку Edit (Правка) в панели задач справа. В открывшемся диалоговом окне снимите отметку с флажка Invoke Only for Requests to ASP.NET Applications or Managed Handlers (Вызывать только для запросов к приложениям ASP.NET или управляемым обработчикам), как показано на рисунке ниже:

После завершения этой настройки при обращении к странице PHP в каталоге веб-приложения запрос будет аутентифицирован посредством аутентификации с помощью форм ASP.NET. Конфигурационный файл web.config для веб-приложения будет выглядеть следующим образом:

Конфигурация FormsAuthenticationModule важна. Флажок в неотмеченном состоянии задает preCondition=»», которое по умолчанию установлено в managedHandler.

PHP exec в Windows с конфигурацией IIS

поэтому я прочитал около 10 ответов, и все, кажется, предлагают идеи, которые почему-то не работают.

Я пытаюсь выполнить простую командную строку, которая является «svn update», но она не работает и возвращает NULL

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

я попробовал несколько команд вроде

и оба работают .. infact chdir говорит точную позицию, где php-файл, выполняющий строку, хранится на ПК.

поэтому проблема в том, почему некоторые команды вроде этого:

не работает? это результаты и пустое значение, хотя внутри папки у меня есть несколько файлов и каталогов.

и почему, если я использую командную строку для перехода в папку, где хранится php-файл, и введите svn update, он работает и делает

любая помощь действительно оценена.

он чувствует, что у меня есть некоторые ограничения, налагаемые на настройку конфигурации, потому что, когда я пытаюсь использовать локальный с помощью apache, я могу получить большинство команд для работы (shell_exec, system, exec, даже без cmd / c)

мне удалось решить проблему ..

это то, что я сделал:

сначала проверьте, какое имя пользователя запущено для конкретного веб-сайта .. для этого выполните:

это вернет имя пользователя, за которым следует имя пользователя.

теперь на компьютере, на котором запущен веб-сервер

и предоставить полномочия администратора для имени пользователя whoami

это позволит вам, наконец, запустить любую команду, которую вы хотите использовать exec или system_exec

с другой стороны, продолжая свою команду SVN, я узнал, что у меня возникла еще одна проблема, связанная с тем, что при ее запуске он будет искать конфигурационный файл, находящийся под учетной записью администратора, и даст сообщение об ошибке:

для решения этой проблемы вам просто нужно указать в команде config_dir, выполнив следующие действия:

надеюсь, что это помогает другим, у которых есть проблемы, подобные тем, которые у меня были!

Вероятно, это проблема с правами системных пользователей. Я попробовал ваш пример:

На моем Windows7 с Xampp установлен, и он работал отлично. Однако с IIS «пользователь» может не иметь прав доступа к каталогу, с моей точки зрения, я думаю, что это может быть системный пользователь IIS-IUSR или что-то в этом роде.

Хорошо, основываясь на ваших ответах, я думаю, вы должны попробовать это:

Выполните свою команду с помощью исполняемого файла ‘svn.exe’ (замените [[местоположение местоположения]]). Возможно, ваш клиент имеет другое местоположение svn.exe, но вам придется это выяснить самостоятельно ��

Что сейчас происходит?

В exec также есть второй параметр, возможно, вы также должны взглянуть на него.

Что может привести к тому, что ExecutionTimeout ASP.NET не будет принудительно выполняться под IIS?

Я пытаюсь устранить проблему, но я не могу воспроизвести ее локально под IIS, потому что независимо от того, как низко я установил executeTimeout, запросы никогда не истекают.

Я попытался установить это через web.config (через код (Page.Server.ScriptTimeout = 5;).

Я работаю с двоичными файлами, которые были скомпилированы в режиме выпуска, и debug = false установлен в элементе компиляции.

FWIW, под Cassini (автономный веб-сервер разработки) все работает, как и ожидалось, из одного и того же каталога, в котором находятся те же файлы сборок / конфигурации.

Любые идеи о том, что может быть причиной этого?

РЕДАКТИРОВАТЬ: Если это актуально, рассматриваемая рабочая станция разработки работает под управлением Win7 / IIS7.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL