Как проверить учетные данные Windows в приложении UWP

Этот сценарий предназначен для приложения UWP, для которого необходимо использовать аутентификацию домена Windows.

При создании приложений Windows Forms я могу использовать приведенный ниже код, чтобы пользователь вводил свои учетные данные домена, чтобы проверить пользователя, а затем предоставить разрешение на выполнение задач в приложении.

Приведенный ниже код отлично работает в приложениях Windows Forms, например, если пользователь подключен к сети, он аутентифицируется на сервере и, кроме того, проверяет с помощью кэшированных учетных данных.

Как я могу проверить учетные данные активного каталога как на сервере, так и локально кэшироваться в приложении UWP?

    private void button1_Click(object sender, EventArgs e)
    {
        bool valid = false;
        try
        {
            using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
            {
                valid = context.ValidateCredentials(textBox1.Text, textBox2.Text);
                if (valid)
                {
                    // Login with server credentials successful
                    MessageBox.Show("Successfully Logged In");
                }
                else
                {
                    // Login with server credentials failed
                    MessageBox.Show("Invalid UserName/Password");
                }
            }
        }
        catch (PrincipalServerDownException exPSD)
        {
            //server is down; check local cache
            MessageBox.Show("server is down; check local cache");
            valid = false;
            using (PrincipalContext checkpass = new PrincipalContext(ContextType.Machine)) //checks local machine first
            {


                valid = checkpass.ValidateCredentials(textBox1.Text, textBox2.Text);


                if (valid)
                {
                    // Login with cached credentials successful  
                    MessageBox.Show("Successfully Logged In");
                }
                else
                {
                    // Login with cached credentials failed
                    MessageBox.Show("Invalid UserName/Password");
                }

            }
        }
        catch (Exception ex)
        {
            //some other exception; show general message
            MessageBox.Show("some other exception; show general message");
        }
    }