我已经实现了一种通过MSAL身份验证使用Xamarin Forms来使用Web API 2的方法。 它在UWP上效果很好,但我无法在Android平台上进行身份验证。Xamarin和Android的MSAL身份验证
我总是得到了认证Authorization has been denied for this request.
的代码看起来是这样的:
public static PublicClientApplication IdentityClientApp = null;
internal static void InitializeLogin(PlatformParameters platformParameters)
{
App.IdentityClientApp = new PublicClientApplication(Constants.ApplicationID);
if (platformParameters != null)
App.IdentityClientApp.PlatformParameters = platformParameters;
我得到的第一个标记是这样的:
public async Task SignIn()
{
if (App.IdentityClientApp != null)
this.authenticationResult = await App.IdentityClientApp.AcquireTokenAsync(new String[] { Constants.ApplicationID });
}
而且每次通话前刷新到我的API那样:
public async Task<String> RefreshToken()
{
if (App.IdentityClientApp != null)
{
this.authenticationResult = await App.IdentityClientApp.AcquireTokenSilentAsync(new String[] { Constants.ApplicationID });
}
return (this.authenticationResult.Token);
}
在我的Android MainActivity.cs,我称之为登录初始化方法与platformParameters:
App.InitializeLogin(new PlatformParameters(this));
为了缩小这个问题,请解码本网站的access_token以检查'aud'声明是否与**受众**配置匹配以保护网络API。 –
谢谢你的回答。观众似乎是正确的,因为我在那里看到我的applicationID。 –