Windows ストア アプリでログインダイアログ出したい!ってときに使えるクラス。
使い方は結構簡単でした。
var option = new CredentialPickerOptions { AuthenticationProtocol = Windows.Security.Credentials.UI.AuthenticationProtocol.Basic, Message = "Message Text", Caption = "Caption Text", TargetName = "オレオレ", CredentialSaveOption = CredentialSaveOption.Selected, }; var p = await CredentialPicker.PickAsync(option); // ユーザー名をパスワードを取得 Debug.WriteLine(p.CredentialUserName); Debug.WriteLine(p.CredentialPassword);
AuthenticationProtocolは、いろんなものが設定できますが、ここではパスワードをそのまま取得できるBasicを指定してます。私は、そこらへん明るくないのですが、色んな値が設定できるので用途に応じて好きにできそう
AuthenticationProtocol Enumeration
出てくるログイン画面はそっけないものですが独自に作りこむよりはOSになじんでいいかも。
PickAsyncの戻り値の、Credentialプロパティで入力された"不透明な資格情報"が取得できます。
CredentialPickerResults.Credential credential Property.aspx) 不透明な資格情報が何をさしているのかわかりませんが、こいつを記憶しておくことで再度ログインダイアログを出すときに資格情報をあらかじめ入力された状態にすることができます。 IBuffer型なので、AsStreamメソッドを使ってストリームに変換してどこかに書き出しておいてもいいですし、お好きにできます。
ログイン画面にあらかじめ資格情報が入った状態にするには、CredentialPickerOptionsのPreviousCredentialに、上記のCredentialPickerResults.Credentialプロパティの値をつっこめば出来ます。
知らなかった。