gpt4 book ai didi

c# - 如何从 Azure AD 获取用户列表?

转载 作者:行者123 更新时间:2023-12-05 01:34:06 24 4
gpt4 key购买 nike

我正在使用 asp.net core MVC,我想从 Azure AD 读取用户。我在微软文档中阅读了很多,我知道我必须使用 GraphAPI 来做到这一点,但我不知道如何做。现在一切都让我感到困惑。

我不知道在哪里放置代码,我不知道从哪里获得 GraphServiceClient 中给出的 authPROvider。我什至不知道那个 authprovider 是什么?!任何人都可以提供信息和演示代码,以便我真正了解如何去做,将不胜感激! :) 感谢所有帮助!

最佳答案

using Microsoft.Graph;
using Microsoft.Graph.Auth;
using Microsoft.Identity.Client;
using System;

namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create("application id")
.WithTenantId("tenant id")
.WithClientSecret("application secret")
.Build();

ClientCredentialProvider authenticationProvider = new ClientCredentialProvider(confidentialClientApplication);
GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
var result = graphServiceClient.Users.Request().GetAsync();
foreach (var item in result.Result)
{
Console.WriteLine(item.DisplayName);
}

Console.ReadKey();

}
}
}

更新

1. https://github.com/microsoftgraph/msgraph-training-aspnet-core

您可以直接下载这个项目

2。 https://github.com/microsoftgraph/msgraph-training-aspnet-core/tree/master/demo

这是建立上述内容所需的文件。

3.下面截图是我的例子,这个asp.net core mvc项目使用microsoft graph是可行的。

enter image description here

这是一个仅页面列表广告用户的示例。只需将以下访问 token 放入 var accessToken="your access token****** "***;你可以运行它。

<html>

<style>
.userItem {
background-color:lightgrey;
list-style-type: none;
margin: 0;
padding: 0;
}

.userItem p {
display: inline-block;
width:25%
}

.LicenseItem {
background-color: lightgoldenrodyellow;
margin: 0;
padding: 0;
height: 45%;
overflow: auto;
}

.LicenseItem p {
display: inline-block;
width: 20%;

}


.loadMore {
background-color: aqua;
font-style: italic;
text-align: center;
padding: 15px;
}
</style>

<body>
<div id="message"></div>
<div id="userListView">
<div class="userItem" style="background-color: aqua;font-style: italic;">
<hr>
<p> user display name </p>
<p> user email address </p>
<p> user principal name </p>
</div>
<div id="userList"></div>
<div id="loadMore" class="loadmore"></div>
</div>
</body>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>
var accessToken="your access token*********";
var ItemView = " <div id='@id' class='userItem'><hr><p id='@id-obj' style='display:none'>@obj</p><p > @displayName </p><p > @mail </p><p > @upn </p></div>"
function initPage(){
$("#loadMore").empty();
$.ajax({
url: 'https://graph.microsoft.com/v1.0/users?$top=10',
type: 'get',
headers: {
"Content-type": 'application/json',
"Authorization":"Bearer " + accessToken
},
success: function (data) {
var userlist = data.value;
var nextpageUrl = data['@odata.nextLink'];
if(nextpageUrl){
$("#loadMore").append("<div onclick='loadMore(\""+ nextpageUrl +" \")'>load more...</div>");
}
userlist.forEach(element => {
var view = ItemView.replace(/@id/g,element.id).replace("@displayName",element.displayName).replace("@mail",element.mail).replace("@upn",element.userPrincipalName).replace("@obj",JSON.stringify(element));
console.log(JSON.stringify(element));

$("#userList").append(view);
});
},
error:function(data){
var response = JSON.parse(data.responseText)
document.getElementById("message").innerHTML="ERROR:" + response.error.message;
}
});
}

function loadMore(url){

$.ajax({
url: url,
type: 'get',
headers: {
"Content-type": 'application/json',
"Authorization":"Bearer " + accessToken
},
success: function (data) {
var userlist = data.value;
var nextpageUrl = data['@odata.nextLink'];

if(nextpageUrl){
$("#loadMore").empty();
$("#loadMore").append("<div onclick='loadMore(\""+ nextpageUrl +" \")'>load more...</div>");
}
userlist.forEach(element => {
var view = ItemView.replace(/@id/g,element.id).replace("@displayName",element.displayName).replace("@mail",element.mail).replace("@upn",element.userPrincipalName).replace("@obj",JSON.stringify(element));
$("#userList").append(view);
});
},
error:function(data){
var response = JSON.parse(data.responseText)
document.getElementById("message").innerHTML="ERROR:" + response.error.message;
}
});
}
initPage();

</script>

</html>

关于c# - 如何从 Azure AD 获取用户列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64023983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com