检查Microsoft Azure Active Directory中是否存在用户名

时间:2014-11-05 21:21:58

标签: c# asp.net-mvc azure asp.net-mvc-5 azure-active-directory

我正在使用Microsoft Azure Active Directory登录我的MVC 5应用程序。有人可以告诉我如何检查Microsoft Azure Active Directory中是否已存在用户名吗?

这样做的一般方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以使用Graph API并查询所需的用户。有关Graph API的信息,请阅读:http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx
公共查询页面(http://msdn.microsoft.com/en-us/library/azure/jj126255.aspx)具有针对给定userPrincipalName的用户的查询。您应该使用此查询并检查它是否返回404(未找到)。

您正在寻找的查询基本上是:“https://graph.windows.net/contoso.com/users/admin@contoso.com?api-version=2013-04-05”您需要将contoso.com替换为您的域名,将admin@contoso.com替换为您要搜索的内容。

您还应该查看Azure AD samples on GitHub。在这种情况下,您可能对如何使用Graph API感兴趣:https://github.com/AzureADSamples/WebApp-GraphAPI-DotNet

  

此示例MVC Web应用程序演示了如何使用Graph API查询Azure Active Directory。为了便于应用程序开发,它包括展示如何使用包含的Graph Library,并使用OpenID Connect授权用户连接到他们的目录数据。

答案 1 :(得分:0)

另一种解决方案:

  public async Task<User> FindByAlias(string alias, GraphServiceClient graphClient)
        {
            List<QueryOption> queryOptions = new List<QueryOption>
            {
                new QueryOption("$filter", $@"mailNickname eq '{alias}'")
            };

            var userResult = await graphClient.Users.Request(queryOptions).GetAsync();
            if (userResult.Count != 1) throw new ApplicationException($"Unable to find a user with the alias {alias}");
            return userResult[0];
        }