如何验证UWP应用程序中的Windows凭据
问题描述:
此方案适用于需要使用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