Что определяет |
Ключ или тег |
Описание и примеры |
||
---|---|---|---|---|
Конфигурация |
<configSections> |
|||
Соединение с БД |
connectionString |
<connectionStrings> Пример connectionString: connectionString="packet size=4096;user id=<user_login>;data source=<DBname>;persist security info=True;initial catalog=<catalog_name>;password=<user_password>;Max Pool Size=2500; MultipleActiveResultSets=true" |
||
Имперсонирование пользователя |
impersonate |
Для работы в режиме однократной синхронизации почтового клиента необходимо, чтобы была включена Windows-авторизация, а также режим имперсонирования: <identity impersonate="true" /> |
||
Ключ фермы |
machineKey |
Требуется для SingleSignOn между серверами "Первой Формы" и/или приложениями (например, "Первой Формой" и Личным кабинетом). <machineKey validationKey="xxx" decryptionKey="xxx" validation="SHA1" decryption="AES" /> |
||
Настройки авторизации |
authentication |
Аутентификация Windows (Active Directory): <authentication mode="Windows"/> Аутентификация Forms (через БД сайта) Начиная с версии 2.184: тега authentication быть не должно. См. Настройка аутентификации по токенам. До версии 2.184: <authentication mode="Forms"> |
||
Редирект для разных доменных имен |
SetCookieForUpperLevelDomain |
Ключ SetCookieForUpperLevelDomain определяет, для какого домена будет задана cookie 1FormaAuth - для домена верхнего уровня (значение true) либо для полного доменного имени (false). <add key="SetCookieForUpperLevelDomain" value="true"/> Если ключ не указан в приложении, то по умолчанию считается, что для cookie задается полный домен. Имеет смысл, если настроены несколько серверов, например, https://win.myDomain.ru и https://forms.myDomain.ru. |
||
Настройка сессии |
sessionState |
По умолчанию <sessionState mode="Off" /> (все остальные атрибуты у sessionState можно удалить) Но если в приложении развернут модуль опросов, то <sessionState mode="InProc" /> |
||
Отдача контейнеров мобильных приложений, а также вызов отчетов FastReport из контекста задачи |
TaskCenter.iOSClientServices.API |
В зависимости от используемого протокола для корректной отдачи контейнеров мобильного приложения в файле web.config необходимо выставить соответствующий параметр в секции Если передача ведется по протоколу https: <service name="TaskCenter.iOSClientServices.API"> Если передача ведется по протоколу http, то параметр bindingConfiguration="secureHttpBinding" не нужен, и строка имеет вид: <service name="TaskCenter.iOSClientServices.API"> <endpoint address="" behaviorConfiguration="TaskCenter.iOSClientServices.APIAspNetAjaxBehavior" binding="webHttpBinding" contract="TaskCenter.iOSClientServices.API" /> </service> |
||
Путь к Swagger для тестирования API |
ApplicationPath |
В секции <appSettings> можно указать путь к Swagger: <add key="ApplicationPath" value="https://адрес-приложения-1Форма" /> В этом случае обращение к Swagger будет идти по адресу: https://адрес-приложения-1Форма/swagger/ui/index/ Если ключ не указан, то адрес будет браться из параметра "Путь к приложению" в Общих настройках приложения. |
||
Сервер заданий по таймеру |
IsJobServer |
Чтобы на сервере запускались задания по таймеру, в секции <appSettings> должен быть ключ <add key="IsJobServer" value="true"/> Тогда при старте приложения будет запускаться механизм джобов. Если ключ IsJobServer не указан, то задания будут запускаться на сервере с ключем IsMainServer |
||
Задания по удалению неиспользуемых файлов |
EnableRemovalOfUnusedFiles RemovePreparedFileStorageFilesJob |
Чтобы работали задания по таймеру, отвечающие за удаление неиспользуемых файлов, в секции <appSettings> должен быть ключ <add key="EnableRemovalOfUnusedFiles" value="true"/>
Чтобы ограничить время выполнения самого длительного задания (RemovePreparedFileStorageFilesJob), можно указать максимальное число файлов, которое оно может обработать за один запуск: <add key="RemovalOfUnusedFilesBatchCount" value="300000"/> где 300 000 - это максимальное число файлов.
|
||
Создание задач для календарных встреч из Exchange (при включенной синхронизации) |
CreateTasksForAppointments |
Если календарная встреча создается в "Первой Форме", создается задача в календарной категории и запись в таблице Appointments. Если календарная встреча создается в Exchange, то в "Первой Форме" создается запись в таблице Appointments, а соответствующая задача в системной календарной категории может создаваться или не создаваться. Будет ли создаваться такая задача, определяет ключ CreateTasksForAppointments – если он имеет значение false, задача в системном календаре не создается, если true - создается. По умолчанию задача в "Первой Форме" создается, но чтобы ускорить синхронизацию, этот режим можно отключить.
<appSettings> |
||
Доступность прямой работы с SQL из интерфейса администрирования |
disableSQLShell |
В интерфейсе администрирования "Первой Формы" можно отключить возможность работы напрямую с SQL. Это определяет ключ disableSQLShell: Если ключ имеет значение true, то в разделе Сервисы не доступен пункт Выполнить SQL-запрос, а в редакторе смарт-выражений не отображается кнопка В TSQL. При попытке отредактировать хранимую процедуру будет возникать ошибка 403. <appSettings> |
||
Минимальная продолжительность активной сессии в минутах для конкурентной лицензии |
ConcurrentSessionMinLengthInMinutes |
После авторизации в системе пользователь попадает в список активных сессий. Время сессии по умолчанию - 1 минута, обновляется и увеличивается с активностью пользователя. После отсутстивия активности в системе конкурентная лицензия высвобождается В ключе ConcurrentSessionMinLengthInMinutes можно задать время активной сессии: <add key="ConcurrentSessionMinLengthInMinutes" value="1" />
Если в системе включены конкурентные лицензии, в значении ключа "ConcurrentSessionMinLengthInMinutes" должно быть установлено большее значение, чем значение "AuthTokenExpiresInMinutes" (время жизни access-токена в минутах). Пример: ConcurrentSessionMinLengthInMinutes = 60, AuthTokenExpiresInMinutes = 50, AuthTokenRefreshStrategy = "SlidingExpiration". Это необходимо для обновления токена до окончания конкурентной сессии. В таком случае активная конкурентная сессия пользователя гарантированно будет продлена. В противном случае могут возникать ситуации потери конкурентной сессии во время онлайн-работы пользователя , т.к. она завершилась раньше, чем произошло обновление токена. |
||
Режим аутентификации в ActiveDirectory |
ActiveDirectoryAuthenticationMode |
Для аутентификации через ActiveDirectory в секции appSettings может быть установлен ключ ActiveDirectoryAuthenticationMode. Возможные значения: DirectoryServices, ldap, PrincipalContext. Значение по умолчанию - ldap •DirectoryServices - библиотека "system.directoryservices" (только для AD). •PrincipalContext - "System.DirectoryServices.AccountManagement", более высокоуровневая библиотека (только для AD). Необходимо выбрать значением для ActiveDirectoryAuthenticationMode,, если в лесе ActiveDirectory используются одноименные учетные записи. •ldap - "Novell.Directory.Ldap" - библиотека, работающая по протоколу LDAP. Работает как с AD, так и для других LDAP-серверов (к примеру, OpenLDAP). |
||
Обновление кэшей через БД |
ApplicationInstanceId |
Для задания имени инстанса в секции appSettings необходим ключ ApplicationInstanceId. Его значение (т.е. имя инстанса) должно быть уникальным для каждого инстанса приложения. <add key="ApplicationInstanceId" value="web-1901" /> |
||
Сигнализация для обновления кешей через БД |
MessageBus UseSqlServerBus |
Ключ MessageBus определяет очередь сообщений. Возможные значения: None, Redis (устаревшее), RebusSQL (по умолчанию). При старте приложения "Первая Форма" соответствующая очередь сообщений Rebus очищается. Чтобы работала сигнализация для обновления кешей, в секции appSettings ключ UseSqlServerBus должен быть установлен в значение true. Чтобы выключить Rebus, значение UseSqlServerBus должно быть явно задано как false |
||
Быстрая регистрация модулей приложения |
ExperimentalEnableOptimizedRegistration |
Для быстрой регистрации модулей при старте приложения в секции appSettings ключ ExperimentalEnableOptimizedRegistration должен быть установлен в значение true.
|
||
Обновление пользовательского кеша по сигналу от мастер-сервера |
InvalidateUsersCacheByEvent |
Чтобы включить обновление UsersCache по сигналу от мастер сервера, в секции appSettings ключ InvalidateUsersCacheByEvent должен быть установлен в значение true.
|
||
Скачивание файлов одним архивом (групповая обработка в табличном представлении категории) |
<dependentAssembly> Эти настройки должны присутствовать начиная с версии 2.232 |
|||
Запуска Rebus на Postgre |
PostgreQueueInterval |
По умолчанию 120 секунд |
||
Тип БД |
UsePostgreSQLDatabase |
В зависимости от БД переключается секция defaultConnectionFactory PostgreSQL: <defaultConnectionFactory type="Npsql.NpgsqlConnectionFactory, EntityFramework6.Npgsql" SQL Server: <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="v11.0" /> </parameters> </defaultConnectionFactory> </entityFramework> |
||
SSL при LDAP аутентификации |
UseSecureLDAP |
Использование SSL при аутентификации через LDAP. По умолчанию включено.
|
||
IsolationLevel |
MigrationIsolationLevel |
Указание IsolationLevel для приложения. Возможные значения: •Serializable = 0 •RepeatableRead = 1 •ReadCommitted = 2 •Snapshot = 4 •Chaos = 5 •Unspecified = 6 |
||
Обновление токенов аутентификации |
AuthTokenRefreshStrategy |
Стратегия обновления токенов. Возможные значения: •SlidingExpiration (значение по-умолчанию) - автоматическое обновление токенов с периодичностью в зависимости от времени жизни. •None - обновление не предусмотрено, при истечении времени access-токена требуется повторная авторизация. •RefreshToken - используются refresh-токены (обновление токенов с помощью api-метода api/auth/token/refresh). <add key="AuthTokenRefreshStrategy" value="None" /> |
||
Срок действия RefreshToken |
AuthRefreshTokenExpiresInMinutes |
Время жизни refresh-токена в минутах. Указывается, если в ключе "AuthTokenRefreshStrategy" установлено значение "RefreshToken". По умолчанию время жизни refresh-токена - 30 дней. <appSettings> |
||
Срок действия AccessToken |
AuthTokenExpiresInMinutes |
Время жизни access-токена в минутах. <appSettings> В случае, если в системе включены конкурентные лицензии, время жизни accessToken'а необходимо установить меньшее, чем значение ключа "ConcurrentSessionMinLengthInMinutes" (минимальная длина конкурентной сессии в минутах) . Пример: ConcurrentSessionMinLengthInMinutes = 60, AuthTokenExpiresInMinutes = 50, AuthTokenRefreshStrategy = "SlidingExpiration". Это необходимо для обновления токена до окончания конкурентной сессии. В таком случае активная конкурентная сессия пользователя гарантированно будет продлена. В противном случае могут возникать ситуации потери конкурентной сессии во время онлайн-работы пользователя , т.к. она завершилась раньше, чем произошло обновление токена. |
||
Отключение AQB |
DisableAQB
|
Чтобы отключить AQB, в секции appSettings ключ DisableAQB должен быть установлен в значение true. <appSettings> |
||
Доступность интерфейса SPA |
EnableSpaSettings |
Чтобы в пользовательском и администраторском интерфейсах "Первой Формы" были доступны элементы интерфейса SPA, ключ EnableSpaSettings должен быть установлен в значение true. <appSettings> |
||
Карточка задачи |
UseNewMTF |
Чтобы шапка карточки задачи отображалась в новом дизайне (заказчик, срок и исполнитель в одну строку, под ними категория и текст), нужно установить ключ UseNewMTF в значение true. Если ключ UseNewMTF установлен в значение false или не определен, будет отображаться старый дизайн (слева столбец с основными параметрами и их значениями, справа - текст задачи).
|
||
UseNewMTFStyle |
Чтобы отображалась карточка задачи с новой лентой комментариев и перепиской, нужно установить ключ UseNewMTFStyle в значение true. Если ключ UseNewMTFStyle установлен в значение false или не определен, будет отображаться старый дизайн (лента комментариев внизу).
|
|||
Порталы |
UseSpaPortals |
Чтобы включить использование новых порталов в старом фронте, нужно установить ключ UseSpaPortals в значение true |
||
Профиль пользователя |
UseSPAProfilePage |
В интерфейсе SPA для просмотра профиля пользователя используется ссылка ~/spa/user/profile/{userid}. В старом интерфейсе по умолчанию используется ссылка ~/UserInfo.aspx?UserID={userid}. Чтобы включить переадресацию со старого профиля на новый, нужно включить ключ UseSPAProfilePage. Если UseSPAProfilePage установлен в значение true, то переадресация выполняется, если UseSPAProfilePage установлен в значение false или не определен - переадресация не выполняется |
||
Страница авторизации |
UseSpaLoginPage |
Чтобы использовать страницу авторизации, адаптированную для интерфейса SPA, нужно установить ключ UseSpaLoginPage в значение true |
||
Размер кэша файлов |
FilesCacheSize |
Ключ FilesCacheSize позволяет задать максимальный размер кэша, выделяемый для файлов. Значение указывается в МБ. <add key="FilesCacheSize" value="1024" /> |
||
Файлы, которые не нужно кэшировать |
FilesExtensionsToNotCache |
Чтобы задать типы файлов, которые не следует кэшировать, нужно использовать ключ FilesCacheSize. Расширения файлов указываются в строку через запятую: <add key="FilesExtensionsToNotCache" value="docx,ppt,xlsx" /> |
||
Иерархия задач |
useNewHierarchy |
Чтобы использовать новую иерархию задач, нужно установить ключ useNewHierarchy в значение 1 |
Также настройки web.config можно посмотреть в разделах:
•конфигурирование аутентификации по токенам