ログイン後、クライアントアプリケーションがIMAPSサーバ以外のサーバにアクセスする場合、認証情報を受け渡せます。この機能はIMAPSサーバの認証機構と業務サーバとの間でSSOのような振る舞いをおこないたい場合に便利です。SSOのような振る舞いとは以下のような動作を指します。
- IMAPSサーバで認証していない場合、クライアントからのアクセスはエラーとなる。
- IMAPSサーバで認証済の場合、クライアントからのアクセスは成功する
このような振る舞いを実現するためには、以下のようにします。
- クライアントからアクセスする業務サーバ上のサーバアプリケーションに、認証モジュールを組み込む
- クライアントアプリケーションはIMAPSで認証し、業務サーバにアクセスする際には認証情報を付与してアクセスする
- 使用例
-
using Windows.Web.Http;
using Windows.Web.Http.Filters;
・
・
private async void connectionFunc() {
string url = "https://サーバアドレス:ポート";
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, new Uri(url));
try
{
LoginManager lm = new LoginManager();
lm.setRequestAuth(request);
HttpBaseProtocolFilter hbpf = new HttpBaseProtocolFilter();
hbpf.AllowUI = false; // ユーザー資格情報の入力を求めるプロンプトを表示しない.
HttpClient httpClient = new HttpClient(hbpf);
HttpResponseMessage response = await httpClient.SendRequestAsync(request);
lm.checkServerTimeout(response);
}
catch (IMAPSAuthTimeOutException e)
{
// ログアウト処理の実装を行うことを推奨します。
}
catch (例外キャッチ)
{
// キャッチした例外の内容に応じて、例外処理を実装します。
}
}