【ストアアプリ】資格情報の保存と読み込み

公開日: : 最終更新日:2015/10/20 Blog, Microsoft , ,

こんにちは。
Windowsストアアプリで資格情報をセキュアに保存する方法について。

PasswordVaultを使用します。
以下の例ではIDとパスワードのテキストボックスがあり、
Saveボタン押下時にIDとパスワードを紐づけて資格情報コンテナに保存します。

また、IDテキストボックスのロストフォーカス時に、
対象IDの資格情報が存在していればパスワードを復元します。
※Windows.Security.Credentials名前空間の参照追加が必要です。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <TextBox Grid.Row="0" Name="txtID" Text="" VerticalAlignment="Center" LostFocus="txtID_LostFocus" />
    <TextBox Grid.Row="1" Name="txtPW" Text=""  VerticalAlignment="Center"/>
    <Grid Grid.Row="2">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Button Grid.Column="0" Name="btnSave" Content="Save" Click="btnSave_Click" />
    </Grid>
</Grid>
private static readonly string CREDENTIAL_RESOURCE = "THIS_APP_KEY";
private void btnSave_Click(object sender, RoutedEventArgs e)
{
    var id = txtID.Text;
    var pass = txtPW.Text;
    SavePassword(id, pass);
}

private void SavePassword(string argID, string argPW)
{
    PasswordVault vault = new PasswordVault();
    PasswordCredential credential = new PasswordCredential(CREDENTIAL_RESOURCE, argID, argPW);
    vault.Add(credential);
}

private void txtID_LostFocus(object sender, RoutedEventArgs e)
{
    var id = txtID.Text;
    var pass = LoadPassword(id);
    txtPW.Text = pass;
}

private string LoadPassword(string argID)
{
    PasswordVault vault = new PasswordVault();

    try
    {
        PasswordCredential credential = vault.Retrieve(CREDENTIAL_RESOURCE, argID);
        return credential.Password;
    }
    catch
    {
        return string.Empty;
    }
}

関連記事

【ストアアプリ】タイル通知(TileUpdateManager)について

こんにちは。 ストアアプリでタイル通知を行う方法を調べました。 前回のトースト通知と

記事を読む

no image

UWPとAzure Web AppsでOData

超メモ。走り書き。 Azure上にSQLデータベースコードファーストなAPIをODataで作成する。

記事を読む

WordPressでスパムコメント対策

WordPressのスパムコメント対策を行ったのでメモ。 標準でAkismetがインストール済み(

記事を読む

【ストアアプリ】バッジ通知(BadgeUpdateManager)について

こんにちは。 前回のタイル通知にバッジ通知を追加しました。 以下を参考に。 https

記事を読む

【WPF/XAML】Colorsクラスのカラーテーブル

http://msdn.microsoft.com/ja-jp/library/system.win

記事を読む

Visual Studio 2015 + PHP Tools for Visual Studio で App Service for Linux へデプロイ

発端はこれ。 https://social.msdn.microsoft.com/Forums/ja

記事を読む

Xamarin.Forms出力バイナリのメモ

iOS -> .ipa, Android -> .apk ipaファイル作成方法 ソリュー

記事を読む

【.NET】16進数文字列から色を設定する

文字列→Colorクラスへの変換メモ プログラム上でFromArgbメソッドに16

記事を読む

VisualStudio2015でiOSアプリケーション開発

こんにちは。 Windows10にアップグレードしました。 VisualStudioも201

記事を読む

UWPをHockeyApp対応させる

走り書きメモ。 UWPをHockeyApp対応させるためにはNuGetパッケージを使ってモジュール

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑