Բովանդակություն

Ներածություն

LoginService դասը նախատեսված է 8X սերվիսին միացման ժամանակ նույնականացնելու համար։ Դասը նաև ապահովում է նույնականացման թոքենի արդի լինելը։

8X սերվիսին որևէ ծրագրից միանալու համար անհրաժեշտ է նախապես սահմանել API Client։

Նույնականացումից հետո օգտագործվում է ApiClient ստեղծելու և դրա միջոցով սերվիսին հարցումներ կատարելու համար։

Տե՛ս օգտագործման օրինակը։

Հատկություններ

IsLoggedIn

public bool IsLoggedIn { get; }

Նույնականացումից հետո ցույց է տալիս, արդյոք նույնականացված է, թե ոչ։

AuthenticationMode

public AuthenticationMode? AuthenticationMode { get; private set; }

Նույնականացումից հետո վերադարձնում է նույնականացման եղանակը։

  • AuthenticationMode.ArmSoft - SQL նույնականացում
  • AuthenticationMode.AD - Active Directory նույնականացում

Username

public string Username { get; private set; }

Նույնականացումից հետո վերադարձնում է նույնականացված օգտագործողի մուտքանունը։

Name

public string Name { get; private set; }

Նույնականացումից հետո վերադարձնում է նույնականացված օգտագործողի անունը։

IsAdmin

public bool IsAdmin { get; private set; }

Նույնականացումից հետո վերադարձնում է նույնականացված օգտագործողի ադմինիստրատոր հանդիսանալու հայտանիշը։

DbName

public string DbName { get; private set; }

Նույնականացումից հետո վերադարձնում է հիմնական տվյալների պահոցի անունը։

Server

public string Server { get; private set; }

Նույնականացումից հետո վերադարձնում է տվյալների պահոցը պարունակող սերվերի անունը։

SessionGuid

public string SessionGuid { get; private set; }

Նույնականացումից հետո վերադարձնում է օգտագործողի համակարգ մուտք գործման արդյունքում բացված սեսսիայի id-ն։

ServiceUrlData

public ServiceUrlData ServiceUrlData { get; private set; }

Նույնականացումից հետո վերադարձնում է սերվիսի միացման վերաբերյալ տվյալներ (Host Name, Port, Tls, Url)։

ServiceAddress

public string ServiceAddress { get; private set; }

Նույնականացումից հետո վերադարձնում է սերվիսի հասցեն։

ConfigurationName

public string ConfigurationName { get; private set; }

Նույնականացումից հետո վերադարձնում է AuthenticateAsync կանչին փոխանցված համապատասխան պարամետրը։ Այն ինֆորմատիվ բնույթ է կրում։

Suid

public short Suid { get; private set; }

Նույնականացումից հետո վերադարձնում է նույնականացված օգտագործողի ներքին համարը (կոդ)։

TokenValidToUTC

public DateTime TokenValidToUTC { get; private set; }

Նույնականացումից հետո վերադարձնում է ստեղծված թոքենի վավերականության ավարտի ամսաթիվը/ժամանակը։

RefreshTokenValidToUTC

public DateTime RefreshTokenValidToUTC { get; private set; }

Նույնականացումից հետո վերադարձնում է ստեղծված թարմացման թոքենի վավերականության ավարտի ամսաթիվը/ժամանակը։

MustChangePassword

public bool MustChangePassword { get; private set; }

Նույնականացումից հետո ցույց է տալիս, արդյոք օգտագործողը պարտավոր է փոխել իր գաղտնաբառը։

PasswordState

public PasswordState? PasswordState { get; private set; }

Նույնականացումից հետո վերադարձնում է նույնականացված օգտագործողի գաղտնաբառի վիճակը։

  • Normal - Գաղտնաբառը վավեր է։
  • PasswordChangedByAdmin - Գաղտնաբառը նշանակվել է ադմինիստրատորի կողմից և ենթակա է փոփոխման:
  • PasswordExpired - Գաղտնաբառի օգտագործման ժամկետը լրացել է։

Մեթոդներ

AuthenticateAsync(ClientId, ClientSecret)

public Task<Exception> AuthenticateAsync(string serviceAddress, HttpClient httpClient, 
                                         ILogger logger, short apiClientId, string secret, 
                                         string username, string configurationName = "", 
                                         CancellationToken cancellationToken = default)

Նույնականացնում է ինտեգրման ծրագրի համար ստեղծված բանալիով (API Client

Նույնականացման ձախողման դեպքում վերադարձնում է առաջացած սխալը, հակառակ դեպքում վերադարձնում է null:

Պարամետրեր

  • serviceAddress - 8X սերվիսի հասցեն։
  • httpClient - HttpClient դասի օբյեկտ, որը նախատեսված է նույնականացման և նույնականացումից հետո Http հարցումներ կատարելու համար է։ Օբյեկտը հարկավոր է բաց պահել քանի դեռ կատարվում են հարցումներ։
  • logger - ILogger դասի օբյեկտ, որը օգտագործվում է հարցումների և արդյունքների լոգավորման համար լոգավորման համար։
    Կարող է փոխանցվել null։
  • apiClientId - Կլիենտ ծրագրի id-ն (API Client Id)։
  • secret - Կլիենտ ծրագրի բանալի (API Client Secret)։
  • username - Օգտագործողի մուտքանունը (ներքին անունը)։
  • configurationName - Այս պարամետրի արժեքը փոխանցվում է ConfigurationName հատկությանը: Այն ինֆորմատիվ բնույթ է կրում։
  • cancellationToken - Ընդհատման օբյեկտ։

Օրինակ

Տե՛ս օգտագործման օրինակը։

AuthenticateAsync(X509Certificate2, UserName, Password)

public Task<Exception> AuthenticateAsync(string serviceAddress, HttpClient httpClient, 
                                         ILogger logger, X509Certificate2 x509Certificate2, 
                                         short apiClientId, string username, string password, 
                                         string configurationName = "", 
                                         CancellationToken cancellationToken = default)

Նույնականացնում է օգտագործողի մուտքանունով և գաղտնաբառով, պահանջվում է սերտիֆիկատի առկայություն (API Client

Նույնականացման ձախողման դեպքում վերադարձնում է առաջացած սխալը, հակառակ դեպքում վերադարձնում է null:

Պարամետրեր

  • serviceAddress - 8X սերվիսի հասցեն։
  • httpClient - HttpClient դասի օբյեկտ, որը նախատեսված է նույնականացման և նույնականացումից հետո Http հարցումներ կատարելու համար է։ Օբյեկտը հարկավոր է բաց պահել քանի դեռ կատարվում են հարցումներ։
  • logger - ILogger դասի օբյեկտ, որը օգտագործվում է հարցումների և արդյունքների լոգավորման համար լոգավորման համար։
    Կարող է փոխանցվել null։
  • x509Certificate2 - Սերտիֆիկատ, որն օգտագործվում է կլիենտ ծրագրի նույնականացման համար:
  • apiClientId - Կլիենտ ծրագրի id-ն (API Client Id)։
  • username - Օգտագործողի մուտքանունը։
  • password - Օգտագործողի գաղտնաբառը։
  • configurationName - Այս պարամետրի արժեքը փոխանցվում է ConfigurationName հատկությանը: Այն ինֆորմատիվ բնույթ է կրում։
  • cancellationToken - Ընդհատման օբյեկտ։

GetToken

public string GetToken(TimeSpan? timeSpan = null)

Նույնականացումից հետո վերադարձնում է ստեղծված թոքենը։ Օգտագործվում է ApiClient ստեղծելու համար։

Թոքենի վավերականության ժամկետի ավարտի դեպքում թոքենը ավտոմատ թարմացվում է և վերադարձվում թարմացված թոքենը։

Պարամետրեր

  • timeSpan - Եթե թոքենի վավերականության ավարտին մնացել է ավելի քիչ ժամանակ, քան նշված է այս պարամետրում, ապա թոքենը թարմացնում է և վերադարձնում է թարմացված թոքենը։ Դատարկ արժեքի դեպքում տոկենը թարմացնում է այն դեպքում, երբ տոկենի վավերականության ավարտին մնացել է 2 րոպե կամ ավելի քիչ ժամանակ։

Logout

public void Logout()

Դուրս է հանում ընթացիկ օգտագործողին համակարգից, փակում օգտագործողի սեսսիան և հեռացնում սեսսիայի ընթացքում առաջացած ժամանակավոր ֆայլերը, ընդհատում է ընթացիկ առաջադրանքները։