我正在尝试使用AAD B2C身份验证登录到xamarin移动应用程序。我已经在Visual Studio中创建了解决方案。在Azure中,我创建了我的租户,注册了本机应用程序和Web应用程序(下面的属性),并尝试调试我的应用程序。目前,我已重定向到B2Clogin页面,可以输入用户名和密码。然后,它处理该请求并无限期停留在该页面上。当我检查azure门户时,可以看到通过B2C登录页面创建的帐户,并且可以看到成功登录,但是B2C登录页面没有重定向回我的应用程序。 我还在AppDelegate.cs和MainActivity.cs中使用AuthenticationContinuationHelper
在App.cs中
````
public static string B2CClientEndpoint = "<UserFlowAuthorizationEndpoint>"; //the endpoint generated when we ran the user flow.
public static string[] B2CScopes = { "<RegisteredWebAPI.Read>" };
PCAB2C = PublicClientApplicationBuilder.Create(B2CClientID)
.WithB2CAuthority("https://<DirectoryName>.b2clogin.com/tfp/<DirectoryName>.onmicrosoft.com/<Policy>")
.WithIosKeychainSecurityGroup("<SecurityGroup>")
.WithRedirectUri("msal<ApplicationID>://auth")
.Build();
````
在控制器类中
````C#
IAccount User = Accounts.FirstOrDefault();
if (Accounts.Count() != 0)
{
Result = await App.PCAB2C.AcquireTokenSilent(App.B2CScopes, User)
.WithB2CAuthority("<B2CSignInAuthority>")
.ExecuteAsync();
}
else
{
User = Accounts.FirstOrDefault();
Result = await App.PCAB2C.AcquireTokenInteractive(App.B2CScopes)
.WithB2CAuthority("<B2CSignInAuthority>")
.WithParentActivityOrWindow(App.ParentWindow)
.WithAccount(User)
.ExecuteAsync();
}
```
答案 0 :(得分:0)
根据AD B2C的official documentation,
要在隐藏的iframe中刷新并获取令牌,请使用hint = none来确保iframe不会卡在登录页面上并立即返回。
因此,从本质上讲,请验证您的URL,并且不要忘记查看错误响应!
答案 1 :(得分:0)