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