Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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# 为什么AuthenticationResult B2C身份验证中accessToken为空?_C#_Api_Authentication_Xamarin.forms_Azure Ad B2c - Fatal编程技术网

C# 为什么AuthenticationResult B2C身份验证中accessToken为空?

C# 为什么AuthenticationResult B2C身份验证中accessToken为空?,c#,api,authentication,xamarin.forms,azure-ad-b2c,C#,Api,Authentication,Xamarin.forms,Azure Ad B2c,我正在做一个xamarin.form项目。我根据以下示例添加B2C身份验证: 我完全复制和粘贴,没有改变方法。现在它可以工作了,但问题在于AuthenticationResult ar参数中,访问令牌为null,并且到期日期也错误。我解决不了。 如果您需要更多信息,请告诉我。请确保您已完成以下步骤: 在Azure B2C刀片服务器中,选择应用程序并将回复URL设置为Azure移动应用程序实例的地址,例如。https://App.azurewebsites.net,后跟/.auth/login/a

我正在做一个xamarin.form项目。我根据以下示例添加B2C身份验证: 我完全复制和粘贴,没有改变方法。现在它可以工作了,但问题在于AuthenticationResult ar参数中,访问令牌为null,并且到期日期也错误。我解决不了。
如果您需要更多信息,请告诉我。

请确保您已完成以下步骤:

在Azure B2C刀片服务器中,选择应用程序并将回复URL设置为Azure移动应用程序实例的地址,例如。https://App.azurewebsites.net,后跟/.auth/login/aad/callback

在刀片服务器中,选择AAD提供商,转到高级并设置客户端ID和颁发者URL,客户端ID是Azure Active Directory B2C租户的应用程序ID,颁发者URL是Azure Active Directory B2C策略的元数据端点

附加参考:

请检查以下文档以了解正确的步骤:


希望有帮助。

请确保您已完成以下步骤:

在Azure B2C刀片服务器中,选择应用程序并将回复URL设置为Azure移动应用程序实例的地址,例如。https://App.azurewebsites.net,后跟/.auth/login/aad/callback

在刀片服务器中,选择AAD提供商,转到高级并设置客户端ID和颁发者URL,客户端ID是Azure Active Directory B2C租户的应用程序ID,颁发者URL是Azure Active Directory B2C策略的元数据端点

附加参考:

请检查以下文档以了解正确的步骤:


希望有帮助。

按照此操作创建一个Web API应用程序注册,以表示您的资源,并将前端应用程序注册端访问权限分配给资源权限。

然后,身份验证请求必须在身份验证请求的Scope参数中提供API标识符和作用域名称,以获得身份验证代码,该代码将被兑换为访问令牌:

要让MSAL为您执行此操作,请执行以下操作: AuthenticationResult=Wait App.AuthenticationClient.AcquireTokenSilentConstants.Scopes,accounts.FirstOrDefault

作用域将是一个数组,并且必须包含您在上面设置的Web API应用程序注册的标识符URI/ScopeName


按照此操作创建Web API应用程序注册以表示您的资源,并将前端应用程序注册端访问权限分配给资源权限。

然后,身份验证请求必须在身份验证请求的Scope参数中提供API标识符和作用域名称,以获得身份验证代码,该代码将被兑换为访问令牌:

要让MSAL为您执行此操作,请执行以下操作: AuthenticationResult=Wait App.AuthenticationClient.AcquireTokenSilentConstants.Scopes,accounts.FirstOrDefault

作用域将是一个数组,并且必须包含您在上面设置的Web API应用程序注册的标识符URI/ScopeName


您的作用域值错误。访问令牌用于访问受保护的资源,如web API。作用域是管理这些受保护资源的权限的方法。web api使用作用域来实现基于作用域的访问控制

例如,为应用程序ID URI为的API指定read的作用域值https://contoso.onmicrosoft.com/api,范围是https://contoso.onmicrosoft.com/api/read.

在AAD B2C门户中,您可以设置所有这些

例如,在此示例中,客户端应用程序正在请求对此应用程序的权限https://fabrikamb2chello.azurewebsites.net/hello 通过https://fabrikamb2c.onmicrosoft.com/helloapi/demo.read

在门户的AAD B2C部分中设置。在名为HelloApi的Web Api中,我设置了作用域:

然后在同一AAD B2C部分中,我转到我的客户端应用程序AzureAD B2C Playerd,在API访问部分中,我添加了一个到HelloApi的链接,并确定此应用程序将访问哪些范围。

回到客户端应用程序中,我需要确保设置了clientId、策略和重定向Uri,并更新了Web API作用域和ApiEndpoint的值。现在,AAD B2C门户中的所有内容都已连接,您应该可以通过Web Api获取该资源的访问令牌


请参见,范围值错误。访问令牌用于访问受保护的资源,如web API。作用域是管理这些受保护资源的权限的方法。web api使用作用域来实现基于作用域的访问控制

例如,为应用程序ID URI为的API指定read的作用域值https://contoso.onmicrosoft.com/api,范围是https://contoso.onmicrosoft.com/api/read.

在AAD B2C门户中,您可以设置所有这些

例如,在此示例中,客户端应用程序正在请求对此应用程序的权限https://fabrikamb2chello.azurewebsites.net/hello 通过 Hhttps://fabrikamb2c.onmicrosoft.com/helloapi/demo.read

在门户的AAD B2C部分中设置。在名为HelloApi的Web Api中,我设置了作用域:

然后在同一AAD B2C部分中,我转到我的客户端应用程序AzureAD B2C Playerd,在API访问部分中,我添加了一个到HelloApi的链接,并确定此应用程序将访问哪些范围。

回到客户端应用程序中,我需要确保设置了clientId、策略和重定向Uri,并更新了Web API作用域和ApiEndpoint的值。现在,AAD B2C门户中的所有内容都已连接,您应该可以通过Web Api获取该资源的访问令牌


请参阅

谢谢您的评论,但我的身份验证工作正常,我的问题只是accessToken,我正在mac上工作。谢谢您的评论,但我的身份验证工作正常,我的问题是accessToken,我正在mac上工作。