Содержание
Еще одним способом хранения настроек приложения .NET MAUI является использование защищенного хранилище. Защищенное хранилище можно использовать для хранения каких-либо конфиденциальные данных, например, паролей доступа к ресурсам, ключей API и так далее. Для работы с защищенным хранилищем используется интерфейс ISecureStorage
.
Защищенное хранилище
Интерфейс ISecureStorage и класс SecureStorage
Интерфейс предоставляет нам API для хранения настроек в виде пар «ключ-значение» в защищенном хранилище устройства. Интерфейс ISecureStorage
реализуется в статическом классе SecureStorage
, который предоставляет нам ряд асинхронных методов для работы с настройками:
Метод | Описание |
Get |
Возвращает и расшифровывает значение для заданного ключа. |
Remove(String) |
Удаляет ключ и связанное с ним значение, если он существует. |
Remove |
Удаляет все хранимые пары «ключ-значение». |
Set |
Задает и шифрует значение для заданного ключа. |
Класс SecureStorage
предоставляет нам через свое свойство Default
реализацию интерфейса ISecureStorage
по умолчанию. Следует отметить, что, в отличие от класса Preferences
, который мы рассматривали в предыдущей части, SecureStorage
не может возвращать значения по умолчанию для настроек, а также принимает в качестве значений настроек только строки. Теперь рассмотрим работу с защищенным хранилищем.
Использование защищенного хранилища для работы с настройками приложения
Создадим новое приложение .NET MAUI и изменим файл MauiProgram.cs, добавив настройки приложения в защищенное хранилище:
using Microsoft.Extensions.Logging; namespace MauiConfiguration; public static class MauiProgram { public static MauiApp CreateMauiApp() { //устанавливаем настройки приложения SecureStorage.Default.SetAsync("Message", "Привет, .NET MAUI"); SecureStorage.Default.SetAsync("Text", "Это пример работы с SecureStorage"); var builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); }); #if DEBUG builder.Logging.AddDebug(); #endif return builder.Build(); } }
Теперь изменим обработчик OnCounterClicked()
в файле MainPage.xaml.cs, использовав его для чтения настроек:
private async void OnCounterClicked(object sender, EventArgs e) { descriptionLabel.Text = await SecureStorage.Default.GetAsync("Text"); helloLabel.Text = await SecureStorage.Default.GetAsync("Message"); }
Здесь мы используем асинхронные методы SecureStorage
для получения настроек приложения. Внесем из менения в XAML-код страницы MainPage
:
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MauiConfiguration.MainPage"> <ScrollView> <VerticalStackLayout Padding="30,0" Spacing="25"> <Label x:Name="helloLabel" Text="Hello, World!" Style="{StaticResource Headline}" SemanticProperties.HeadingLevel="Level1" /> <Label x:Name="descriptionLabel" Text="Descriptiom"/> <Button x:Name="CounterBtn" Text="Click me" SemanticProperties.Hint="Counts the number of times you click" Clicked="OnCounterClicked" HorizontalOptions="Fill" /> </VerticalStackLayout> </ScrollView> </ContentPage>
Теперь можно проверить результат работы приложения и убедиться, что настройки приложения были получены из защищенного хранилища:
Итого
Защищенное хранилище в приложениях .NET MAUI может использоваться для хранения конфиденциальных данных. В SecureStorage
хранятся строки, а для их получения используются асинхронные методы.