Мой проект разработан с использованием VS2017 и Xamarin.
Я хочу аутентифицировать мобильное приложение Xamarin для Android с помощью IdentityServer4.
Информация о моем клиенте IdentityServer4 выглядит следующим образом:
{
"Enabled": "true",
"ClientId": "xamarin.android",
"ClientName": "Application",
"UserClaims": ["role"],
"RequirePkce": "true",
"AllowOfflineAccess": "true",
"RequireClientSecret": "false",
"AllowAccessTokensViaBrowser": "true",
"AlwaysIncludeUserClaimsInIdToken": "true",
"AllowedGrantTypes": [
"authorization_code"
],
"RedirectUris": [
"http://localhost/oauth/grants"
],
"AllowedScopes": [
"openid",
"profile",
"offline_access",
"my.api"
]
}
И мой класс приложения xamarin похож на следующий.
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
namespace MainUI
{
public partial class App
{
public App() : this(null) { }
public App(IPlatformInitializer initializer) : base(initializer) { }
protected override async void OnInitialized()
{
InitializeComponent();
await NavigationService.NavigateAsync("NavigationPage/MainPage");
}
public static Account AuthAccount { get; set; }
public static HttpClient Client = new HttpClient();
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<NavigationPage>();
containerRegistry.RegisterForNavigation<MainPage, MainPageViewModel>();
}
protected override void OnStart()
{
var oAuth = new OAuth2Authenticator(
"xamarin.android",
"offline_access my.api",
new Uri("http://localhost/oauth/connect/authorize"),
new Uri("http://localhost/oauth/grants"))
{
AccessTokenUrl = new Uri("http://localhost/oauth/connect/token"),
ShouldEncounterOnPageLoading = false
};
var presenter = new OAuthLoginPresenter();
presenter.Login(oAuth);
}
}
}
Но когда я запускаю код, выдается исключение, которое не содержит подробностей.
Ошибка Stacktrace выглядит так:
в Xamarin.Auth.Presenters.OAuthLoginPresenter.Login
(Xamarin.Auth.Authenticator authenticator) [0x00012] в
<98de59c6304c4348ab7c355151c2702f>: 0 в MainUI.App.OnStart ()
[0x0004f] в C: \ Development \ Proj \ MainUI \ MainUI \ App.xaml.cs: 64
Вы когда-нибудь получали ошибку, подобную этой?