Тема настройки веб-формы подымалась не один раз. И все же, в разных версиях Windows есть отличия. В данном блоге я хочу предоставить цикл поднятия веб-формы на операционных системах с ядром Windows 7 (Windows 7, Windows Server 2008 R2 и выше).
И так, начнем с самого основного – компоненты Windows. В блоге предоставляется основной набор установленных компонентов Windows. Также, здесь описано как работать с веб-формой с помощью доменной авторизации. В связи с добавлением этой функциональности, список минимально необходимых компонентов расширяется.

  1. Добавим/проверим список установленных компонентов
  2. Добавим пользователя, который должен входить в группу IIS_IUsrs
  3. Регистрируем Terrasoft от имени заведенного нами пользователя (в нашем случае – TSWebFormUser)
  4. Настраиваем конфигурацию
  5. Копирование Config.xml
  6. После того, как конфигурация настроена и проверена, нам нужно скопировать файл с Config.xml из папки пользователя TSWebFormUser в папку Settings установленного Terrasoft’а
    В моем случае Terrasoft установлен в папку C:\Terrasoft, поэтому я буду его копировать в C:\Terrasoft\Settings из папки пользователя С:\Users\TSWebFormUser\appdata\Roaming\Terrasoft\3.4.0\Settings

  7. Редактирование RunSettings
  8. Открываем файл RunSettings.xml (в моем случае C:\Terrasoft\Settings\RunSettings.xml) и указываем новый путь к файлу Config.xml

  9. Открываем оснастку Internet Information Service (IIS) Manager
  10. Проверяем ISAPI and CGI Restrictions

  11. Если у вас в списке нету ASP NET v4.0.x, то необходимо установить Framework 4 (при установке скорее всего появится диалог Remove\Repair, нужно сделать Repair или из командной строки выполнить:
    %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i
    %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe –i)

  12. Добавляем новый Application Pool
  13. Настраиваем запуск от имени нашего заведенного пользователя TSWebFormUser
  14. Устанавливаем разрешение на запуск 32-х битных приложений (в 2008 R2 x64 у меня заработало без этого разрешения, но скорость меньше)
  15. Добавляем приложение (именно приложение, Virtual Directory работать не будет) и указываем пользователя, от которого оно будет запускаться
  16. Тестируем подключение
  17. Добавляем страницу Login.aspx как страницу по умолчанию
  18. В Application Settings настраиваем подключение к конфигурации
  19. В секции TSLogin нужно указать пользователя, который имеет права на соответствующие разделы

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

  1. Установить значение параметра TSAllowWindowsAuthentication в True
  2. Авторизация
  3. Анонимную авторизацию выключить, а Windows Authentication - включить (если она отсутствует в списке, то вы не выполнили 1-й пункт, а именно не включили компонент Windows Authentication)

Вот собственно все, что требуется для настройки Web-формы на Windows 7 и Windows 2008 R2

Нравится

Поделиться

0 комментариев
Показать все комментарии

IE - лучший браузер в мире

Проблема заключается в том что пользователь логинится на веб-форму и после нажатия на кнопку "Войти" попадает опять на ту же форму логина! Т.е. невозможно даже войти.

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

Проблема

После тщательного анализа выяснили, что если в названии хоста или домена есть символ подчеркивания, "_", например http: //your_host.com/Login.aspx - то IE не сохранит данные ваших сессий, любые другие переменные в куки. И это несмотря на то, что данных хост\домен добавлен в список доверенных, в IE настроена политика принимать куки с любого сайта (даже из списка запрещенных), отключена любая безопасность и т.д!!!

Выдержка с блога msdn:

Q5: IE won’t set a cookie when the hostname/domain contains an underscore?

A: Correct. Technically, underscore is not a DNS character, and while Windows will let you use an underscore when naming your machine, it warns you that doing so may cause problems. One such problem is that WinINET blocks attempts to set cookies on such domains.

Существует также множество других серьезных глюков в IE, поэтому рекомендую также ознакомиться со всей статьей, запись в официальном блоге Microsoft:
http://blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx

Решение

Если у вас такая проблема - не используйте IE - наверно лучшее решение :).

Ну а если серьезно, варианты решений:

  1. Переименовать имя сервера на имя не содержащее символы подчеркивания
  2. Настроить DNS переадресацию, например:
    • a. На каждом клиентском компьютере добавить в файл hosts запись вида: ip-адрес_серверапробел>имя_сервера (пример: 10.5.6.6 WebForm) – после этого обращаться к веб-форме можно будет с помощью адреса http://WebForm/Login.aspx - при этом имя домена уже не будет содержать символ подчеркивания и все будет отлично работать.
    • b. Если в локальной сети используется DNS-маршрутизация, есть DNS-сервер, то необходимо сделать для web-сервера синоним, не содержащий подчеркивания. Сделать это нужно в одном месте (не на каждом клиентском компьютере), поэтому это решение правильнее. После этого нужно перезагрузить DNS и обращаться к веб-форме используя синоним. Это должен делать администратор сети.

Приятной разработки :)

Нравится

Поделиться

3 комментария

Да. IE - это зло. С выходом новых версий ничего не меняется, если кто-то хочет понять причины: http://paulirish.com/2011/browser-market-pollution-iex-is-the-new-ie6/

IE всё правильно делает:


The LDH rule, as updated, provides that the labels (words or strings
separated by periods) that make up a domain name must consist of only
the ASCII [ASCII] alphabetic and numeric characters, plus the hyphen.
No other symbols or punctuation characters are permitted, nor is
blank space.

RFC 3696

"Зверев Александр" написал:IE всё правильно делает:

В этом случае, частично согласен, НО!

1. IIS мог бы как-то сказать видя, что хост называется не по правилам FQDN, а он принимает все как есть и в итоге IE не работает
2. Если есть настройки - от кого принимать куки, то должна быть настройка - "принимать куки даже если в имени есть подчеркивание" или хотя бы что-то в документации к IE или какая-то возможность это отключить и т.д. С точки зрения пользователя - вы разрешили для всех сайтов использовать куки. Но для некоторых они все же не используются. Почему??

Показать все комментарии