#blazor-webassembly
Вопрос:
У нас есть статический класс для хранения определенных данных на уровне приложения. Мы устанавливаем эти значения свойств при входе пользователя в систему. Эти значения будут использоваться везде, где они требуются.
В Blazor WASM, какой подход подходит для моего случая выше? Буду признателен, если смогу предоставить какой-нибудь образец.
Спасибо.
Комментарии:
1. Является ли это приложение для сбора данных широким? Или только для конкретного пользователя?
2. для обеих целей. может быть как для пользователя (имя пользователя, адрес электронной почты), так и для приложения (название кампании).
3. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
Ответ №1:
В настоящее время я использую подход, основанный на утверждениях ( с проверкой подлинности azure B2C ), где я сохраняю нужные мне значения в утверждениях:
string oid ="information to store"; (context.Principal.Identity as System.Security.Claims.ClaimsIdentity).AddClaim(new System.Security.Claims.Claim("claim_name", oid));
установите информацию после входа в систему:
options.Events = new OpenIdConnectEvents { OnTokenValidated = async context =gt; { //SET THE INFO HERE } }
Извлеките его с помощью:
public string get_info_in_claims(AuthenticationState authState) { string ret = ""; foreach (var cla in authState.User.Claims) { if (cla.Type == "claim_name") { ret = cla.Value; } } return ret; }