2

我正在尝试通过具有自己客户端的 azure 应用程序中的 AAD 进行用户授权。我的 AAD 中有一个名为“User”的用户,密码为“pass”。当用户尝试连接应用程序时:

            try
            {
                if (false == Utils.DataBaseUtils.CheckLoginCorrect(sceneMessage.Login, sceneMessage.Pwd))
                {
                    WriteToLog("Wrong password");
                    SendError(handler, "Wrong password");
                    return;
                }
            }
            catch (Exception e)
            {
                WriteToLog("Unexpected problem when checking password: "+e.ToString());
                SendError(handler, "Unexpected problem when checking password");
                return;
            }

    //authorization using Azure Active Directory
    public static bool CheckLoginCorrect(string login, string password)
    {
        if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password))  //validatecredentials return true if log or pass is empty
            return false;

        using (PrincipalContext adContext = new PrincipalContext(ContextType.Domain, "mydomain156.onmicrosoft.com"))  //represent AD
        {
            return adContext.ValidateCredentials(login, password, ContextOptions.Negotiate);
        }
    }

哪里sceneMessage.Login == "User"sceneMessage.Pwd == "pass"。在这里我收到错误:

System.DirectoryServices.AccountManagement.PrincipalServerDownException:无法联系服务器。---> System.DirectoryServices.Protocols.LdapException:LDAP 服务器不可用。

请问有人可以帮忙吗?

4

2 回答 2

1

看起来您正在将 AD 库用于传统的本地 AD。若要针对 Azure AD 进行编程,请使用 Auzre 身份验证库 (AAL)。请注意,上周 AAL 已重命名为 Active Directory 身份验证库。

http://msdn.microsoft.com/en-us/library/jj573266.aspx

于 2013-08-12T15:50:48.847 回答
0

Azure Active Directory 身份验证库(ADAL,以前称为 AAL)是用于对 Azure Active Directory 中的用户进行身份验证的正确 API。版本 1 已发布,您可以在此处找到更多信息:

http://www.cloudidentity.com/blog/2013/09/12/active-directory-authentication-library-adal-v1-for-net-general-availability/

于 2013-09-17T17:01:49.440 回答