我試圖查詢添加到Azure AD中的用戶對象的自定義目錄擴展。我正在使用找到的解決方案here。如何使用MS Graph在Azure AD中獲取目錄擴展
我能夠使用UserProfileController獲取屬性並更新模型以具有我們的自定義擴展屬性(請參閱下面的兩個代碼片段)。
型號/ UserProfile.cs
public class UserProfile
{
public string DisplayName { get; set; }
public string GivenName { get; set; }
public string Surname { get; set; }
public string extension_ExtId_ExtName { get; set; }
}
查看/ UserProfile.cshtml
@model App.Models.UserProfile
<h2>@ViewBag.Title.</h2>
<table class="table table-bordered table-striped">
<tr>
<td>Display Name</td>
<td>@Model.DisplayName</td>
</tr>
<tr>
<td>First Name</td>
<td>@Model.GivenName</td>
</tr>
<tr>
<td>Last Name</td>
<td>@Model.Surname</td>
</tr>
<tr>
<td>Employee Id</td>
<td>@Model.extension_ExtId_ExtName</td>
</tr>
</table>
@if (ViewBag.ErrorMessage == "AuthorizationRequired")
{
<p>You have to sign-in to see your profile. Click @Html.ActionLink("here", "Index", "UserProfile", new { reauth = true }, null) to sign-in.</p>
}
@if (ViewBag.ErrorMessage == "UnexpectedError")
{
<p>An unexpected error occurred while retrieving your profile. Please try again. You may need to sign-in.</p>
}
我的目標是具有擴展extension_ExtId_ExtName
出現用戶的列表上。我試圖使用解決方案的UsersController
並查看以獲取此信息,但似乎無法修改Microsoft Graph API User模型。該模型設置爲IEnumerable<User>
,其中Microsoft Graph客戶端控件。
如何添加我的自定義擴展,以便我可以從User對象中檢索它?
我證實,我可以將圖形Explorer和我的請求的URL設置爲通過用戶對象獲得它:
https://graph.microsoft.com/beta/users('{[email protected]}')?select=extension_EXTENSION-ID_extensionName
感謝
我明白你說什麼,我現在檢查我的代碼,因爲它的一部分引用了MS Graph API,而另一部分引用了Azure AD Graph API。我更喜歡在我的項目中使用MS Graph API,因此我將專注於此領域。我意識到我的UserProfileController依賴於MS Graph,而UserController依賴於Azure AD。謝謝。 –
好吧,我試圖使用'aspnet-snippets-example'並使其工作得很好,但是現在我反對試圖拉取自定義目錄擴展名,如前面發佈的圖形URL中所示。再次,我嘗試更新ViewModel,以包含目錄擴展的解決方案,但我仍然無法獲得它,因爲它引用了圖形用戶對象。幫幫我? –
我相信你正在尋找['User']的'Extensions'屬性(https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/src/Microsoft.Graph/Models/Generated /User.cs)。 –