Статический класс в Blazor WASM

#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;  }