LoginService դաս
Բովանդակություն
Ներածություն
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()
Դուրս է հանում ընթացիկ օգտագործողին համակարգից, փակում օգտագործողի սեսսիան և հեռացնում սեսսիայի ընթացքում առաջացած ժամանակավոր ֆայլերը, ընդհատում է ընթացիկ առաջադրանքները։