Microsoft Azure AD 用户搜索分页api调用
来源:互联网 发布:kingroot卸载软件失败 编辑:程序博客网 时间:2024/04/30 01:42
可以在azure graph explorer 调试
https://developer.microsoft.com/en-us/graph/graph-explorer
实体类:
https://developer.microsoft.com/en-us/graph/graph-explorer
分页获取AZURE AD用户的代码:
其中的clientId,TenantName,可在azure账号里的Azure AD的application中找到。
private IHttpActionResult DoUserPaging(UserPagingRequest request, string tryGetToken) { string directoryName = AzureADAppConstants.TenantName; string clientId = AzureADAppConstants.ClientId; var credentials = new UserAssertion(tryGetToken); var authenticationContext = new AuthenticationContext(AzureADGlobalConstants.AuthString + directoryName); var loginResult = authenticationContext.AcquireTokenAsync(AzureADGlobalConstants.GraphUrl, clientId, credentials) .Result; var token = loginResult.AccessToken; ProfileResultWrapper result = null; string skipToken = ""; using (var httpClient = new HttpClient()) { var baseUrl = "https://graph.microsoft.com/v1.0/users?"; var filterString = string.Format("$top={0}", request.PageSize); // sample : //https://graph.microsoft.com/v1.0/users?$top=10&$skiptoken=X%274453707 // if (!string.IsNullOrWhiteSpace(request.AzureToken)) { filterString += "&$skiptoken=" + request.AzureToken; } httpClient.BaseAddress = new Uri(baseUrl + filterString); httpClient.DefaultRequestHeaders.Authorization = AuthenticationHeaderValue.Parse("Bearer " + token); var graphRet = httpClient.GetAsync("").Result; var json = graphRet.Content.ReadAsStringAsync().Result; result = JsonConvert.DeserializeObject<ProfileResultWrapper>(json); var i = result.SkipToken.IndexOf("skiptoken="); var st = "skiptoken="; skipToken = result.SkipToken.Substring(i + st.Length, result.SkipToken.Length - i - st.Length); } foreach (var profile in result.Value) { var photo = GetUserPhoto(token, profile.Id); profile.Photo = photo; } return Ok(new PagingQueryResponse() { IsSuccess = true, ErrorMessage = "", Data = result.Value, SkipToken = skipToken }); }private byte[] GetUserPhoto(string token, string objId) { using (var httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri("https://graph.microsoft.com/v1.0/users/"); httpClient.DefaultRequestHeaders.Authorization = AuthenticationHeaderValue.Parse("Bearer " + token); var x = httpClient.GetAsync(String.Format("{0}/photo/$value", objId)).Result; var bytes = x.Content.ReadAsByteArrayAsync().Result; return bytes; } }
实体类:
public class UserPagingRequest { public int PageSize { get; set; } public string AzureToken { get; set; } public string EmbedToken { get; set; } } public class ProfileResultWrapper { [JsonProperty("@odata.nextLink")] public string SkipToken { get; set; } [JsonProperty("value")] public IList<UserProfileResult> Value { get; set; } } public class UserProfileResult { [JsonProperty("id")] public string Id { get; set; } [JsonProperty("businessPhones")] public IList<string> BusinessPhones { get; set; } [JsonProperty("displayName")] public string DisplayName { get; set; } [JsonProperty("givenName")] public string GivenName { get; set; } [JsonProperty("jobTitle")] public string JobTitle { get; set; } [JsonProperty("mail")] public string Mail { get; set; } [JsonProperty("mobilePhone")] public string MobilePhone { get; set; } [JsonProperty("officeLocation")] public string OfficeLocation { get; set; } [JsonProperty("preferredLanguage")] public string PrefferedLanguage { get; set; } [JsonProperty("surname")] public string Surname { get; set; } [JsonProperty("userPrincipalName")] public string UserPrincipalName { get; set; } public byte[] Photo { get; set; } }
阅读全文
2 0
- Microsoft Azure AD 用户搜索分页api调用
- 具有 Windows Azure AD 和 Microsoft OWIN 组件的安全 ASP.NET Web API
- Microsoft Azure
- 使用python调用azure api步骤文档
- Java 调用 Azure HTTPS API 证书问题
- Java遍历AD用户,解决用户搜索不全的问题
- python 3 登录azureAD并调用azure graph api
- asp.net Webapi登录azureAD并调用azure graph api
- c# 调用研华AD板API例子
- c# 调用研华AD板API例子(转载)
- \t\tc# 调用研华AD板API例子(转载)
- Microsoft Azure Websites简介
- Microsoft Azure网站架构
- Microsoft Azure 部署网站
- Microsoft Applications on Azure
- Windows Azure改名为Microsoft Azure
- dotnet调用win32 api实现文件搜索
- 调用天地图API实现关键词搜索
- 解决:ASP.NET 4.5尚未在Web服务器上注册。您需要手动将Web服务器配置为使用ASP.NET 4.5,这样您的网站才能正确运行。
- 字符串精确匹配KMP算法思想演变
- windows下schtasks的DOS命令的使用
- js笔记·····DOM(document object model)
- 机器学习算法工程师需要掌握的技能与要踩的坑
- Microsoft Azure AD 用户搜索分页api调用
- LeetCode #698 Partition to K Equal Sum Subsets
- RabbitMQ官方中文入门教程(PHP版) 第二部分:工作队列(Work queues)
- construct2游戏进阶~
- latex上标下标
- hdu 3374 String Problem
- pygame学习和python巩固——字体显示
- 陳述式沒有傳回結果集。
- es6环境搭建(2)创建js编译任务