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 (例外キャッチ) { // キャッチした例外の内容に応じて、例外処理を実装します。 } }