我正在使用Microsoft Azure Active Directory登录我的MVC 5应用程序。有人可以告诉我如何检查Microsoft Azure Active Directory中是否已存在用户名吗?
这样做的一般方法是什么?
答案 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];
}