IMAPSでは、クライアント内にデータをセキュアに保存するための仕組みとして、SLSを提供しています。SLSを認証モードで利用している場合、格納データはパスワードをキーにして保護されています。
そのためパスワードが変更された場合、格納された暗号化データを引き継ぐ(暗号化データを新しいパスワードで再暗号化する)必要があります。
private async void loginFunc() {
string url = "https://サーバアドレス:ポート";
string userId = "user1";
string passwd = "pass11";
try
{
LoginManager lm = new LoginManager();
await lm.loginOnline(url, userId, passwd);
}
catch (IMAPSSlsPasswordException spe)
{
// パスワードが異なるため、データの引き継ぎができなかった場合に例外が発生します。
// データの引き継ぎをおこなうかをユーザーに問い合わせます。
}
catch (例外キャッチ)
{
// キャッチした例外の内容に応じて、例外処理を実装します。
}
}
// データを引き継ぎます
private void transFunc(string oldPasswd) {
try
{
LoginManager lm = new LoginManager();
lm.transData(oldPasswd);
}
catch (IMAPSSlsPasswordException spe)
{
// パスワードが異なるため、データの引き継ぎができなかった場合に例外が発生します。
// データの引き継ぎをおこなうかをユーザーに問い合わせます。
}
catch (例外キャッチ)
{
// キャッチした例外の内容に応じて、例外処理を実装します。
}
}
// データを削除します
private void deleteFunc() {
try
{
LoginManager lm = new LoginManager();
lm.deleteData();
}
catch (例外キャッチ)
{
// キャッチした例外の内容に応じて、例外処理を実装します。
}
}