Table of Contents

Class AuthorizationService

Namespace
Ascon.Polynom.Web.Api.Client.Auth
Assembly
Ascon.Polynom.Web.Api.Client.dll

Сервис управления авторизацией: вход, выход, обновление и автопродление токена.

public sealed class AuthorizationService : ITokenRefresher, IAsyncDisposable
Inheritance
AuthorizationService
Implements
Inherited Members

Constructors

AuthorizationService(ITokenStorage, IOptions<PolynomApiClientOptions>, ILoginApiClientFactory, IHttpClientFactory, TimeProvider?, ILogger<AuthorizationService>?)

Инициализирует сервис авторизации.

public AuthorizationService(ITokenStorage tokenStorage, IOptions<PolynomApiClientOptions> options, ILoginApiClientFactory loginClientFactory, IHttpClientFactory httpClientFactory, TimeProvider? timeProvider = null, ILogger<AuthorizationService>? logger = null)

Parameters

tokenStorage ITokenStorage

Хранилище токенов.

options IOptions<PolynomApiClientOptions>

Параметры клиента.

loginClientFactory ILoginApiClientFactory

Фабрика клиента входа.

httpClientFactory IHttpClientFactory

Фабрика HTTP-клиентов.

timeProvider TimeProvider

Источник времени.

logger ILogger<AuthorizationService>

Логгер.

Properties

IsAuthenticated

Признак активной авторизации.

public bool IsAuthenticated { get; }

Property Value

bool

Methods

DisposeAsync()

public ValueTask DisposeAsync()

Returns

ValueTask

SetSsoUrl(string?)

Задаёт адрес сервера SSO для выхода из единой сессии.

public void SetSsoUrl(string? url)

Parameters

url string

Адрес сервера SSO.

SignInAsync(ISignInRequest, CancellationToken)

Выполняет вход по имени пользователя и паролю.

public Task<IAuthResponse?> SignInAsync(ISignInRequest request, CancellationToken cancellationToken = default)

Parameters

request ISignInRequest

Параметры входа.

cancellationToken CancellationToken

Токен отмены.

Returns

Task<IAuthResponse>

Ответ авторизации.

SignInByAccessTokenAsync(string, ISignInRequest, bool, CancellationToken)

Выполняет вход по имеющемуся access-токену.

public Task<IAuthResponse?> SignInByAccessTokenAsync(string accessToken, ISignInRequest request, bool tokenFromSso = false, CancellationToken cancellationToken = default)

Parameters

accessToken string

Access-токен, с которым выполняется вход.

request ISignInRequest

Тело запроса на вход.

tokenFromSso bool

Признак, что токен получен из SSO.

cancellationToken CancellationToken

Токен отмены.

Returns

Task<IAuthResponse>

Ответ авторизации.

SignInBySystemAsync(ISignInBySystemRequest, CancellationToken)

Выполняет системный вход.

public Task<IAuthResponse?> SignInBySystemAsync(ISignInBySystemRequest request, CancellationToken cancellationToken = default)

Parameters

request ISignInBySystemRequest

Параметры входа.

cancellationToken CancellationToken

Токен отмены.

Returns

Task<IAuthResponse>

Ответ авторизации.

SignOutAsync(CancellationToken)

Закрывает сессию и (при наличии) сессию SSO.

public Task<bool> SignOutAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Токен отмены.

Returns

Task<bool>

true, если выход выполнен.

SignOutSsoAsync(CancellationToken)

Закрывает сессию в системе единой авторизации.

public Task SignOutSsoAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Токен отмены.

Returns

Task

UpdateTokenAsync(CancellationToken)

Обновляет токен доступа, используя токен обновления.

public Task<bool> UpdateTokenAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Токен отмены.

Returns

Task<bool>

true, если токен обновлён.

Events

AuthenticationStateChanged

Событие изменения состояния авторизации.

public event EventHandler<bool>? AuthenticationStateChanged

Event Type

EventHandler<bool>

SignedOut

Событие завершения выхода из системы.

public event EventHandler? SignedOut

Event Type

EventHandler