Microsoft Authentication Library と Azure AD B2C を使用して、モバイル アプリのログインを提供しています。これで、ログイン プロセスを開始する非同期イベント ハンドラーをボタンに提供できます。
// iOS example
public override void ViewDidLoad()
{
base.ViewDidLoad();
LoginButton.TouchUpInside += async (sender, e) =>
{
try
{
await app.AcquireTokenAsync(...);
}
catch(Exception e)
{
}
}
}
アプリを最初に開いたときに、 を使用してサイレント ログインできるようにする必要がありますAcquireTokenSilentAsync
。イベント ハンドラーでない限り、void を返すメソッドで async を使用してはならないという多くのドキュメントを見てきましたが、この場合は で行う必要がありますViewDidLoad()
。例外を飲み込んだ場合、これは受け入れられますか?
// is async void okay in this scenario? if not, where else can I put it?
public async override void ViewDidLoad()
{
base.ViewDidLoad();
try
{
await app.AcquireTokenSilentAsync(...);
}
catch(Exception e)
{
// swallow
}
}