![](/img/trans.png)
[英]How do I upload an image to a specific directory in my Azure blob storage from my ASP.NET Core application?
[英]How do I access additional data from Azure Active Directory from my ASP.NET Core application?
我在我的 ASP.NET 核心应用程序中使用了来自我们 Azure 平台的公司活动目录。 当我第一次创建我的项目时,我将其设置为我的身份验证 model。 我需要访问用户的其他详细信息,而不仅仅是他们的 email 地址或姓名,例如他们的country
、 department
和usage location
。 我不确定您是如何做到这一点的,并且想知道是否有人可以提供帮助。
Azure AD Authentication 的默认设置不包括任何模型或帐户页面,它只是将应用注册信息添加到您的appsettings.json
并添加使用身份的登录部分视图:
@using System.Security.Principal
<ul class="navbar-nav">
@if (User.Identity.IsAuthenticated)
{
<li class="nav-item">
<span class="nav-text text-dark">Hello @User.Identity.Name!</span>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="AzureAD" asp-controller="Account" asp-action="SignOut">Sign out</a>
</li>
}
else
{
<li class="nav-item">
<a class="nav-link text-dark" asp-area="AzureAD" asp-controller="Account" asp-action="SignIn">Sign in</a>
</li>
}
</ul>
我有什么办法可以扩展它以获取上述字段,还是我需要创建新的东西? 蒂亚。
它应该在委托人的索赔中。
在您的控制器或视图之一中放置一个断点。 在您的手表 window 中,您可以将用户强制转换为 ClaimsPrincipal 并查看从 Azure AD 返回的声明。
有关声明列表和映射,请参阅Active Directory 声明映射。
此外,ASP.Net Core 2.1 将 AccountController 和视图移动到 Razor Class 库中,因此除了部分视图之外,您不会在通常的目录中看到它们。 您可以使用此处的脚手架标识工具将它们拉回您的目录。
默认情况下,只有少数用户属性包含在令牌中,然后 map 包含在应用程序的用户声明原则中。 您可以使用Microsoft Graph Api 停用用户属性:
注意:获取用户只返回一组默认属性(businessPhones、displayName、givenName、id、jobTitle、mail、mobilePhone、officeLocation、preferredLanguage、surname、userPrincipalName)。 使用 $select 获取用户 object的其他属性和关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.