Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin Azure广告B2C登录,停留在登录页面_C#_Azure_Xamarin_Azure Ad B2c - Fatal编程技术网

C# Xamarin Azure广告B2C登录,停留在登录页面

C# Xamarin Azure广告B2C登录,停留在登录页面,c#,azure,xamarin,azure-ad-b2c,C#,Azure,Xamarin,Azure Ad B2c,我正在尝试使用AAD B2C身份验证登录xamarin移动应用程序。我已经在VisualStudio中创建了解决方案。在Azure中,我已经创建了我的租户,注册了一个本机应用程序和一个web应用程序(属性如下),并且正在尝试调试我的应用程序。目前,我被重定向到B2Clogin页面,可以输入用户名和密码。然后它处理请求并无限期地停留在该页面上。当我检查azure门户时,我可以看到我通过B2C登录页面创建的帐户,我可以看到成功登录,但B2C登录页面不会重定向回我的应用程序。 我还在AppDelega

我正在尝试使用AAD B2C身份验证登录xamarin移动应用程序。我已经在VisualStudio中创建了解决方案。在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();

````
````
公共静态字符串B2CClientEndpoint=“”//运行用户流时生成的端点。
公共静态字符串[]B2CScopes={”“};
PCAB2C=PublicClientApplicationBuilder.Create(B2CClientID)
.有权https://.b2clogin.com/tfp/.onmicrosoft.com/")
.WithIosKeychainSecurityGroup(“”)
.WithRedirectUri(“msal://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();
                    }

```
`C#
IAccount User=Accounts.FirstOrDefault();
如果(Accounts.Count()!=0)
{
结果=等待App.PCAB2C.AcquireTokenSilent(App.B2CScopes,用户)
.有权(“”)
.ExecuteAsync();
}
其他的
{
User=Accounts.FirstOrDefault();
结果=等待App.PCAB2C.AcquireTokenInteractive(App.B2CScopes)
.有权(“”)
.WithParentActivityOrWindow(App.ParentWindow)
.WithAccount(用户)
.ExecuteAsync();
}
```
根据B2C的广告

要刷新并获取隐藏iframe中的令牌,请使用prompt=none确保iframe不会卡在登录页面上,并立即返回


因此,基本上,验证您的URL,不要忘记查看错误响应

我遇到了这个问题,通过减少最低目标Android和iOS版本解决了这个问题

ie:Android 8.0及更高版本&iOS min 13.0

显然,MSAL在Xamarin表单构建中有一个min OS版本作为目标


我尝试使用提示符(prompt.noprompt)添加,但仍然不起作用,没有任何更改将“&prompt=none”添加到URL结尾没有修复它?我没有URL。Xamarin方法根据选项自动格式化URL并在方法中发送。添加该属性声明也可以做同样的事情。