2017-03-15 19 views
0

このシナリオは、Windowsドメイン認証を使用する必要があるUWPアプリケーション向けです。UWPアプリケーションでWindows資格情報を検証する方法

Windowsフォームアプリケーションを作成する際には、以下のコードを使用してユーザーにドメイン資格情報を入力させてユーザーを確認し、アプリケーション内でタスクを実行する権限を与えます。

以下のコードは、ユーザーがネットワークに接続されている場合、サーバーで認証され、キャッシュされた資格情報で検証されるため、Windowsフォームアプリケーションで完全に機能します。

サーバー上とローカルにキャッシュされた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"); 
     } 
    } 

答えて

0

Web Account Management sample ADに対する資格情報を検証する方法を示しています。

+0

お返事ありがとうございます。ただし、このサンプルではAzure ADとMicrosoftアカウントでの認証のみを示しています。それは私がやりたいことである敷地内のアクティブなディレクトリでの認証を表示しません(元の質問にあるwinformsコードでも起こります) – slayernoah

関連する問題