我正在使用 Microsoft 身份验证库和 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 返回方法上使用异步,除非它是一个事件处理程序,但在这种情况下我需要在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
}
}