RuntimeHelper - класс

Вспомогательные методы для пространства имён Tessa.Platform.Runtime.

Definition

Пространство имён: Tessa.Platform.Runtime
Сборка: Tessa (в Tessa.dll) Версия: 4.0.4
C#
public static class RuntimeHelper
Inheritance
Object    RuntimeHelper

Свойства

ApplicationAliasOverride Алиас приложения, используемый вместо алиаса, заданного в атрибуте сборки ApplicationAttribute, или null или пустая строка, если алиас приложения задаётся на основании этого атрибута.
AssemblyResolveActualLocationFunc Делегат, обеспечивающий алгоритм определения путей к файлу заданной сборки вызовом GetActualLocationFolder(Assembly). Если делегат равен null (по умолчанию) или он возвращает null, то используется стандартный алгоритм из метода GetLocationFileNameFromCodeBase(Assembly), определяющий местоположение сборки до того, как она могла быть скопирована механизмом shadow copy.
DefaultPluginExtensionsFolder Папка с расширениями по умолчанию, используемая в методах RegisterServerForPluginAsync(IUnityContainer, ISessionToken, NullableBoolean, Boolean, CancellationToken), RegisterServerForPluginAsync(IUnityContainer, FuncISessionToken, NullableBoolean, Boolean, CancellationToken), RegisterDatabaseForPluginAsync(IUnityContainer, CancellationToken), или null, если папка определяется положением библиотеки Tessa.dll. Устанавливается автоматически при запуске плагинов Chronos.
MaxServerRecommendedParallelThreads Максимальное рекомендованное количество потоков для параллельных операций на сервере. Зависит от настройки LimitMaxThreads в файле app.json. Значение можно указать для MaxDegreeOfParallelism
PasswordEncoding Кодировка, используемая для вычисления хеш-суммы от пароля пароля. Используйте для оптимизации расчётов. Если требуется подписать пароль, рекомендуется использовать метод SignPassword(ISignatureProvider, String), а для проверки - метод VerifyPassword(ISignatureProvider, String, ReadOnlySpanByte).
ServerRequestID Уникальный идентификатор запроса на веб-сервере. Используется для идентификации SQL-запросов в трассировке СУБД. Равен null, если действие не выполняется в рамках запроса на веб-сервере. Значение передаётся между потоками как AsyncLocal.
SwaggerDocIsEnabled Признак того, что разрешён запрос по адресу /swagger для вывода документации по API. По умолчанию false, т.е. проверка запрещена, если в конфигурационном файле нет настройки SwaggerDocIsEnabled.
ThemeFolder Путь к папке с доступными темами оформления (относительно файлов приложения) или null, если используется папка по умолчанию themes. Используйте совместно с методом GetExistentFolderPathList(String, Assembly).
TraceSettings 
UnknownServerPlatformVersion Версия платформы по умолчанию на сервере, если сервер её не сообщил. Соответствует последней версии платформы, которая не сообщала свою версию при логине - это 3.5.0. Используйте это значение, если логин был выполнен и свойство PlatformVersion вернуло null.

Методы

CheckCipherKey Проверяет на валидность ключ CipherKey, используемый для шифрования в системе. Выбрасывает исключения, если ключ не является валидным.
CheckServerCode Проверяет код сервера ServerCode на корректность. Гарантируется, что корректный код сервера может использоваться в ссылках и в ключах Redis.
CheckSignatureKey Проверяет на валидность ключ SignatureKey, используемый для подписи в системе. Выбрасывает исключения, если ключ не является валидным.
ConvertKeyFromString Преобразует ключ SignatureKey или CipherKey из строки в формате base-64 в массив байт. Возвращает null, если строка base64String является пустой строкой или null. Подпись можно использовать, например, создав экземпляр класса HMACSHA256HashSignatureProvider.
ConvertKeyToString Преобразует ключ SignatureKey или CipherKey в строку в формате base-64. Ключ может быть сгенерирован в т.ч. посредством методов GenerateSignatureKey или GenerateCipherKey.
CreateWcfServiceT Создаёт объект прокси для обращения к веб-сервису Tessa с заданными параметрами.
ExecuteInImpersonationContextAsync(String, String, FuncWindowsIdentity, ValueTask, String) Выполняет заданное действие actionAsync в контексте имперсонализации, в которой текущий WindowsIdentity, передаваемый также в параметре, определяется по заданным параметрам пользователя.
ExecuteInImpersonationContextAsync(String, String, String, FuncWindowsIdentity, ValueTask) Выполняет заданное действие actionAsync в контексте имперсонализации, в которой текущий WindowsIdentity, передаваемый также в параметре, определяется по заданным параметрам пользователя.
FindConfigurationFilesWithKeys Возвращает полные пути к конфигурационным файлам для сервисов, располагающихся в заданной базовой папке, в которых могут располагаться ключи подписи SignatureKey и ключи шифрования CipherKey. Учитываются файлы app.json. Также возможно указать путь к конфигурационному файлу.
GenerateCipherKey Генерирует ключ, который может использоваться для шифрования с использованием алгоритмов AES. Размер ключа - 32 байт. Используется для шифрования информации в базе данных, такой как закрытые ключи для шифрования файлов в локальных папках пользователей. В системе метод используется для генерации ключа шифрования CipherKey в файлах app.json (команда tadmin GetToken).
GenerateSignatureKey Генерирует ключ, который может использоваться для подписи. Размер ключа - 64 байт. Если это возможно, рекомендуется использовать стандартные средства подписи ISignatureProvider, который использует ключ, задаваемый для системы в целом. Например, ключ можно передать в созданный экземпляр класса HMACSHA256HashSignatureProvider, а затем использовать для подписи или проверки подписи. В системе метод используется для генерации ключа подписи токенов SignatureKey в файлах app.json (команда tadmin GetToken) - применяется для токена сессии и токена правил доступа; также метод используется для генерации ключа PasswordKey для подписи пароля пользователя PasswordHash по алгоритму HMACSHA256.
GetAbsolutePath Получает абсолютный путь по пути path, который может быть относительным. Путь вычисляется по исходному местоположению сборки entryAssembly. Если путь не задан, то возвращает исходный путь path.
GetApplicationInfo Возвращает информацию по сборке, полученную для атрибутов ApplicationAttribute и AssemblyTitleAttribute.
GetApplicationInfoForDefaultApps Возвращает информацию по сборке для известных системе приложений: TessaClient, TessaAdmin, TessaAppManager. Имя приложения name и его алиас alias будет корректно определён только для известных приложений. Версия сборки applicationVersion определяется для любых сборок .NET без их загрузки. Алиас может быть переопределён в свойстве ApplicationAliasOverride, тогда используется значение из свойства независимо от того, является ли приложение известным. Если приложение было известным, то параметр knownApp возвращает true.
GetExecutableFileName Возвращает имя основного исполняемого файла или полный путь к нему, если параметр fullPath указан как true. При невозможности получить имя файла или путь будет возвращено null или выброшено исключение.
GetExistentFolderPathList По пути к одной или нескольким папкам, который обычно задаётся в конфигурационном файле, возвращает список абсолютных путей к тем из папок, которые в действительности существуют. Метод не возвращает null.
GetIconBitmapStream Возвращает поток с данными иконки, который может использоваться для её отображения в WPF в формате PNG. Возвращаемое значение не равно null.
GetInstanceNameOrDefault Возвращает имя экземпляра instanceName или имя по умолчанию DefaultInstanceName, если заданное имя instanceName является пустой строкой или null.
GetResourceTextFile Возвращает содержимое текстового файла, включённого во встроенные ресурсы сборки assembly и располагающегося по заданному абсолютному пути.
GetUtcOffset Возвращает текущее смещение относительно временной зоны UTC.
IsDefaultInstanceName Возвращает признак того, что заданное имя экземпляра сервера является именем по умолчанию. Такое имя может быть, например, пропущено в ссылках на карточки и другие объекты системы.
OpenApplicationFolder Открывает папку приложения в Windows Explorer. Возвращает признак того, что папка была успешно определена и открыта. Возвращает false на операционных системах, отличных от Windows.
ParseBuildVersionString

Выполняет разбор строки версии платформы на компоненты: MajorVersion - первое и второе число, разделённое через точку; MinorVersion - третье число, начинающееся на точку, или пустая строка, если третье число отсутствует (если есть четвёртое число, то оно обычно здесь же); VersionSuffix - суффикс версии (такой как "beta" или "preview") или пустая строка, если версия считается релизной.

Например, для строки version, равной "2.0.1 beta", возвращает: MajorVersion="2.0", MinorVersion=".1", VersionSuffix="beta". Чтобы получить объект Version, объедените строки MajorVersion+MinorVersion.

ParseDomainAndUserNames Выполняет разбор имени учётной записи на имя домена и имя пользователя.
PrepareServicePointManagerIfNotPrepared Подготавливает стандартный ServicePointManager для использования клиентской части в Tessa, в т.ч. обеспечивает поддержку протоколов TLS (отключает SSLv3), отключает валидацию SSL-сертификатов и настраивает пулинг для ServicePointManager. Актуально только при запуске с подключением к службам WCF (через ServicePointManager), настройки игнорируются для вызова веб-сервисов через HttpClient и его аналоги. В текущей версии платформы включаются TLS 1.0, 1.1, 1.2 и 1.3 (с опциональным отключением младших версий 1.0 и 1.1). Метод может быть вызван одновременно из нескольких потоков, а также несколько раз подряд, при этом работает только первый вызов.
ReplaceKeyInConfigurationFoldersAsync Выполняет замену ключа подписи SignatureKey или ключа шифрования CipherKey во всех конфигурационных файлах сервисов, располагающихся в подпапках относительно указанного базового пути. Доступна замена в конфигурационных файлах формата app.json.
ResolveExactFilePath Возвращает путь к конкретному файлу, не содержащий символов масок * или ?, по пути, который может ссылаться на несколько файлов, используя маски. При этом возвращается первый файл по алфавиту.
SignPassword Вычисляет хеш-сумму от пароля пользователя для сохранения в БД.
TryExtractIconRecommendedSize(Byte) Возвращает иконку рекомендуемых размеров или null, если такую иконку не удалось извлечь.
TryExtractIconRecommendedSize(Icon) Возвращает иконку рекомендуемых размеров или null, если такую иконку не удалось извлечь.
TryGetDefaultIconLocation Возвращает путь к файлу с иконкой по умолчанию, которая может использоваться для переопределения иконки приложения, или null, если путь не удалось определить.
TryGetRecommendedIconDataFromIcoFileAsync Возвращает данные для рекомендуемой иконки, полученной из заданного файла формата .ICO, или null, если данные получить не удалось. Метод может выбросить исключение.
TryReplaceKeyInConfigurationFileAsync Заменяет значение ключа подписи SignatureKey или ключа шифрования CipherKey, используемых в Tessa. Доступна замена в конфигурационных файлах формата app.json. Возвращает true, если ключ заменён; false, если ключ не заменён; null, если конфигурационный файл должен игнорироваться при выводе сообщений.
VerifyPassword Проверяет пароль пользователя по его хеш-сумме.

События

WindowsConsoleClosed Событие, вызываемое в момент закрытия консоли.

Поля

ApplicationDefaultAlias Алиас приложения по умолчанию в случае, если у него отсутствует алиас, полученный другим образом (в атрибуте сборки ApplicationAttribute или в свойстве ApplicationAliasOverride).
CipherKeyName Имя ключа шифрования CipherKey.
CipherKeySize Размер в байтах ключа для шифрования информации CipherKey.
DefaultConfigurationString Название строки подключения к базе данных Tessa.
DefaultInstanceName Имя экземпляра сервера по умолчанию.
DefaultLegacyInstanceName Имя экземпляра, используемое для подключения к legacy-сервисам для сборок платформы 2.x.
DefaultServiceName Имя веб-сервиса ASP.NET Core по умолчанию, содержащее все сервисы платформы.
EnableNotificationsLink Название действия на установку свойства NotificationsAreEnabled. Действие принимает параметр "Value" как True или False.
InvalidLoginOrPasswordMessage Сообщение в исключениях при некорректном логине или пароле. Является строкой локализации (начинается с $).
PasswordExceedsMaxLengthText Текст исключения о том, что длина пароля превышает максимальную.
PasswordMaxLength Максимальная длина пароля пользователя.
ServerCodeMaxLength Максимально допустимая длина кода сервера ServerCode.
ServerRequestParameterName Имя параметра, добавляемого к запросам в БД для идентификации SQL-запросов, принадлежащих одному и тому же запросу с клиента.
SessionHostIPMaxLength Максимальная длина для поля Session.HostIP.
SessionHostNameMaxLength Максимальная длина для поля Session.HostName.
SessionOSNameMaxLength Максимальная длина для поля Session.OSName.
SessionUserAgentMaxLength Максимальная длина для поля Session.UserAgent.
SignatureKeyName Имя ключа подписи SignatureKey.
SignatureKeySize Размер в байтах ключа для подписи токенов SignatureKey.
SkipTwoFactorAuthKey Имя ключа типа Boolean, передаваемого в параметр info методов ISessionServer.OpenSessionAsync. для обозначения того, что проверку двухфакторной аутентификации можно пропустить, поскольку используется другой метод аутентификации. Актуально для SAML-аутентификации.
SkipWindowsLoginValidationKey Имя ключа типа Boolean, передаваемого в параметр info методов ISessionServer.OpenSessionAsync. для обозначения того, что проверку для пользователей Windows можно пропустить, поскольку аутентификация Windows уже выполнена.
ZeroVersion Версия 0.0.
ZeroVersionText Текстовое представление версии ZeroVersion.

См. также