ошибки при добавлении страницы входа в Microsoft - PullRequest
0 голосов
/ 05 июля 2018

Я использую это пошаговое руководство (https://blog.xamarin.com/authenticate-mobile-apps-using-microsoft-authentication-library/), чтобы внедрить страницу входа Microsoft в мое приложение, в которой пользователи должны войти в систему с учетной записью Microsoft. Но я перешел к шагу 3 и могу ' найти способ избавиться от ошибок.

Код в XAML:

    <StackLayout HorizontalOptions="Center" VerticalOptions="Center">

        <Button Text="Login" x:Name="LoginButton"/>

    </StackLayout>

</ContentPage.Content>

Код в коде (C #):

using System;
using System.Collections.Generic;
using Microsoft.Identity.Client;

using Xamarin.Forms;

namespace RoseySports
{
    public partial class Login : ContentPage
    {
        public IPlatformParameters PlatformParameters { get; set; }

        public Login()
        {
            InitializeComponent();
            LoginButton.Clicked += LoginButton_Clicked;

        }

        protected override void OnAppearing()
        {
            App.ClientApplication.PlatformParameters = PlatformParameters;
            base.OnAppearing();
        }
        private async void LoginButton_Clicked(object sender, EventArgs e)
        {
            try
            {
                AuthenticationResult ar = await App.ClientApplication.AcquireTokenAsync(App.Scopes);
                WelcomeText.Text = $"Welcome {ar.User.Name}";
            }
            catch (MsalException ex)
            {
                WelcomeText.Text = ex.Message;
            }
        }
    }
}

Код в App.xaml.cs:

using Xamarin.Forms;
using Microsoft.Identity.Client;

namespace RoseySports
{
    public partial class App : Application
    {
        public static PublicClientApplication ClientApplication { get; set; }
        public static string[] Scopes = { "User.Read" };
        public App()
        {
            InitializeComponent();

            ClientApplication = new PublicClientApplication("your-app-id");
            var content = new Login();
            MainPage = new NavigationPage(content);

            MainPage = new Login_Page();
        }

        protected override void OnStart()
        {
            // Handle when your app starts
        }

        protected override void OnSleep()
        {
            // Handle when your app sleeps
        }

        protected override void OnResume()
        {
            // Handle when your app resumes
        }
    }
}

А вот скриншот со всеми ошибками: ошибка 1 ошибка 2 ошибка 3 ошибка 4

Кроме того, кто-то может объяснить мне, где я должен поместить этот код:

[assembly: ExportRenderer(typeof(Login), typeof(LoginPageRenderer))]
namespace MSALForForms.iOS
{
   class LoginPageRenderer : PageRenderer
   {
      Login _page;
      protected override void OnElementChanged(VisualElementChangedEventArgs e)
      {
          base.OnElementChanged(e);
          _page = e.NewElement as Login;
      }
      public override void ViewDidLoad()
      {
          base.ViewDidLoad();
          _page.PlatformParameters = new PlatformParameters(this);
      }
   }
}

1 Ответ

0 голосов
/ 05 июля 2018

Вы должны добавить Microsoft.IdentityModel.Clients.ActiveDirectory, так как вам не хватает этой ссылки из-за ошибок на скриншоте. Вы можете получить это, добавив пакет NuGet в VS.

  1. Щелкните правой кнопкой мыши по ссылке и выберите «Управление пакетами NuGet»
  2. На вкладке «Обзор» введите «Microsoft.IdentityModel.Clients.ActiveDirectory» и установите его, добавив пакет.
  3. Теперь используйте это пространство имен в вашем проекте. как - using Microsoft.IdentityModel.Clients.ActiveDirectory;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...