2017-03-15 140 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

相关问题