RuntimeHelper - класс

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

Definition

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

Свойства

ApplicationAliasOverride Алиас приложения, используемый вместо алиаса, заданного в атрибуте сборки ApplicationAttribute, или null или пустая строка, если алиас приложения задаётся на основании этого атрибута.
AssemblyResolveActualLocationFunc Делегат, обеспечивающий алгоритм определения путей к файлу заданной сборки вызовом GetActualLocationFolder(Assembly). Если делегат равен null (по умолчанию) или он возвращает null, то используется стандартный алгоритм из метода GetLocationFileNameFromCodeBase(Assembly), определяющий местоположение сборки до того, как она могла быть скопирована механизмом shadow copy.
ConfigRootPath Путь к папке, в которой выполняется поиск конфигурационных файлов, таких как app.json и extensions.xml. Для поиска используется делегат ConfigRootPathFunc. Если он не задан или вернул null, то поиск выполняется в переменной окружения с именем ConfigRootPathEnvironmentVariable. Если переменная равна точке ".", то используется текущая папка приложения Directory.GetCurrentDirectory(). Если переменная не задана, то выполняется поиск относительно папки со сборкой Tessa.dll.
ConfigRootPathFunc Делегат, вызываемый для определения папки с конфигурационными файлами ConfigRootPath. Вызывается один раз при запросе свойства ConfigRootPath. При изменении делегата свойство ConfigRootPath будет вычислено повторно в момент обращения. Если делегат равен null (по умолчанию) или вернул строку null, то будет использоваться определение папки по умолчанию GetDefaultConfigRootPath. Не используйте свойства из файла конфигурации app.json, в т.ч. посредством ConfigurationManager, потому что для поиска app.json также используется свойство ConfigRootPath, и его использование приведёт к бесконечной рекурсии. Пример использования: () => Directory.GetCurrentDirectory(). Для WCF можно использовать: () => System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath.
MaxServerRecommendedParallelThreads Максимальное рекомендованное количество потоков для параллельных операций на сервере. Зависит от настройки LimitMaxThreads в файле app.json. Значение можно указать для MaxDegreeOfParallelism
ServerRequestID Уникальный идентификатор запроса на веб-сервере. Используется для идентификации SQL-запросов в трассировке СУБД. Равен null, если действие не выполняется в рамках запроса на веб-сервере. Значение передаётся между потоками как AsyncLocal.
SwaggerDocIsEnabled Признак того, что разрешён запрос по адресу /swagger для вывода документации по API. По умолчанию false, т.е. проверка запрещена, если в конфигурационном файле нет настройки SwaggerDocIsEnabled.
ThemeFolder Путь к папке с доступными темами оформления (относительно файлов приложения) или null, если используется папка по умолчанию themes. Используйте совместно с методом GetExistentFolderPathList(String, Assembly).
UnknownServerPlatformVersion Версия платформы по умолчанию на сервере, если сервер её не сообщил. Соответствует последней версии платформы, которая не сообщала свою версию при логине - это 3.5.0. Используйте это значение, если логин был выполнен и свойство PlatformVersion вернуло null.

Методы

CheckCipherKey Проверяет на валидность ключ CipherKey, используемый для шифрования в системе. Выбрасывает исключения, если ключ не является валидным.
CheckSignatureKey Проверяет на валидность ключ SignatureKey, используемый для подписи в системе. Выбрасывает исключения, если ключ не является валидным.
ConvertKeyFromString Преобразует ключ SignatureKey или CipherKey из строки в формате base-64 в массив байт. Возвращает null, если строка base64String является пустой строкой или null. Подпись можно использовать, например, создав экземпляр класса SyncSignatureProvider.
ConvertKeyToString Преобразует ключ SignatureKey или CipherKey в строку в формате base-64. Ключ может быть сгенерирован в т.ч. посредством методов GenerateSignatureKey или GenerateCipherKey.
CreateWcfServiceT Создаёт объект прокси для обращения к веб-сервису Tessa с заданными параметрами.
ExecuteInImpersonationContext(String, String, ActionWindowsIdentity, String) Выполняет заданное действие action в контексте имперсонализации, в которой текущий WindowsIdentity, передаваемый также в параметре, определяется по заданным параметрам пользователя.
ExecuteInImpersonationContext(String, String, String, ActionWindowsIdentity) Выполняет заданное действие action в контексте имперсонализации, в которой текущий WindowsIdentity, передаваемый также в параметре, определяется по заданным параметрам пользователя.
FindConfigurationFilesWithKeys Возвращает полные пути к конфигурационным файлам для сервисов, располагающихся в заданной базовой папке, в которых могут располагаться ключи подписи SignatureKey и ключи шифрования CipherKey. Учитываются файлы app.json. Также возможно указать путь к конфигурационному файлу.
GenerateCipherKey Генерирует ключ, который может использоваться для шифрования с использованием алгоритмов AES. Размер ключа - 32 байт. Используется для шифрования информации в базе данных, такой как закрытые ключи для шифрования файлов в локальных папках пользователей. В системе метод используется для генерации ключа шифрования CipherKey в файлах app.json (команда tadmin GetToken).
GenerateSignatureKey Генерирует ключ, который может использоваться для подписи. Размер ключа - 64 байт. Если это возможно, рекомендуется использовать стандартные средства подписи ISignatureProvider, который использует ключ, задаваемый для системы в целом. Например, ключ можно передать в созданный экземпляр класса SyncSignatureProvider, а затем использовать для подписи или проверки подписи. В системе метод используется для генерации ключа подписи токенов 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.
GetBitmapFromIcon Возвращает объект Bitmap по заданной иконке. Учитывает, что .NET может некорректно извлекать иконки разрешения 256х256 и выше.
GetDefaultConfigRootPath Алгоритм поиска по умолчанию для папки, в которой выполняется поиск конфигурационных файлов, таких как app.json и extensions.xml. Поиск сначала выполняется в переменной окружения с именем ConfigRootPathEnvironmentVariable. Если переменная равна точке ".", то используется текущая папка приложения Directory.GetCurrentDirectory(). Если переменная не задана, то выполняется поиск относительно папки со сборкой Tessa.dll.
GetExecutableFileName Возвращает имя основного исполняемого файла или полный путь к нему, если параметр fullPath указан как true. При невозможности получить имя файла или путь будет возвращено null или выброшено исключение.
GetExistentFolderPathList По пути к одной или нескольким папкам, который обычно задаётся в конфигурационном файле, возвращает список абсолютных путей к тем из папок, которые в действительности существуют. Метод не возвращает null.
GetIconBitmapStream Возвращает поток с данными иконки, который может использоваться для её отображения в WPF в формате PNG. Возвращаемое значение не равно null.
GetInstanceNameOrDefault Возвращает имя экземпляра instanceName или имя по умолчанию DefaultInstanceName, если заданное имя instanceName является пустой строкой или null.
GetPasswordBytesToSign Возвращает массив байт, соответствующий заданной строке с паролем password, или null, если переданная строка с паролем не содержит символов.
GetResourceTextFile Возвращает содержимое текстового файла, включённого во встроенные ресурсы сборки assembly и располагающегося по заданному абсолютному пути.
GetUtcOffset Возвращает текущее смещение относительно временной зоны UTC.
IsDefaultInstanceName Возвращает признак того, что заданное имя экземпляра сервера является именем по умолчанию. Такое имя может быть, например, пропущено в ссылках на карточки и другие объекты системы.
OpenApplicationFolder Открывает папку приложения в Windows Explorer. Возвращает признак того, что папка была успешно определена и открыта.
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 Возвращает путь к конкретному файлу, не содержащий символов масок * или ?, по пути, который может ссылаться на несколько файлов, используя маски. При этом возвращается первый файл по алфавиту.
TryExtractIconRecommendedSize(Byte) Возвращает иконку рекомендуемых размеров или null, если такую иконку не удалось извлечь.
TryExtractIconRecommendedSize(Icon) Возвращает иконку рекомендуемых размеров или null, если такую иконку не удалось извлечь.
TryGetDefaultIconLocation Возвращает путь к файлу с иконкой по умолчанию, которая может использоваться для переопределения иконки приложения, или null, если путь не удалось определить.
TryGetRecommendedIconDataFromIcoFileAsync Возвращает данные для рекомендуемой иконки, полученной из заданного файла формата .ICO, или null, если данные получить не удалось. Метод может выбросить исключение.
TryReplaceKeyInConfigurationFileAsync Заменяет значение ключа подписи SignatureKey или ключа шифрования CipherKey, используемых в Tessa. Доступна замена в конфигурационных файлах формата app.json. Возвращает true, если ключ заменён; false, если ключ не заменён; null, если конфигурационный файл должен игнорироваться при выводе сообщений.

Поля

ApplicationDefaultAlias Алиас приложения по умолчанию в случае, если у него отсутствует алиас, полученный другим образом (в атрибуте сборки ApplicationAttribute или в свойстве ApplicationAliasOverride).
CipherKeyName Имя ключа шифрования CipherKey.
CipherKeySize Размер в байтах ключа для шифрования информации CipherKey.
ConfigRootPathEnvironmentVariable Имя переменной окружения, в которой выполняется поиск конфигурационных файлов, таких как app.json и extensions.xml. Если переменная равна точке ".", то используется текущая папка приложения Directory.GetCurrentDirectory(). Если переменная не задана, то выполняется поиск относительно папки Tessa.dll вызовом GetActualLocationFolder(Assembly).
DefaultConfigurationString Название строки подключения к базе данных Tessa.
DefaultInstanceName Имя экземпляра сервера по умолчанию.
DefaultLegacyInstanceName Имя экземпляра, используемое для подключения к legacy-сервисам для сборок платформы 2.x.
DefaultServiceName Имя веб-сервиса ASP.NET Core по умолчанию, содержащее все сервисы платформы.
EnableNotificationsLink Название действия на установку свойства NotificationsAreEnabled. Действие принимает параметр "Value" как True или False.
InvalidLoginOrPasswordMessage Сообщение в исключениях при некорректном логине или пароле.
ServerRequestParameterName Имя параметра, добавляемого к запросам в БД для идентификации SQL-запросов, принадлежащих одному и тому же запросу с клиента.
SessionHostIPMaxLength Максимальная длина для поля Session.HostIP.
SessionHostNameMaxLength Максимальная длина для поля Session.HostName.
SessionOSNameMaxLength Максимальная длина для поля Session.OSName.
SessionUserAgentMaxLength Максимальная длина для поля Session.UserAgent.
SignatureKeyName Имя ключа подписи SignatureKey.
SignatureKeySize Размер в байтах ключа для подписи токенов SignatureKey.

См. также