Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从ASP.NET核心应用程序访问Azure Active Directory中的其他数据?_C#_Azure_Asp.net Core_Azure Active Directory - Fatal编程技术网

C# 如何从ASP.NET核心应用程序访问Azure Active Directory中的其他数据?

C# 如何从ASP.NET核心应用程序访问Azure Active Directory中的其他数据?,c#,azure,asp.net-core,azure-active-directory,C#,Azure,Asp.net Core,Azure Active Directory,我已经在我的ASP.NET核心应用程序中使用了来自Azure平台的公司active directory。我在第一次创建项目时将其设置为身份验证模型。我需要访问用户的其他详细信息,而不仅仅是他们的电子邮件地址或姓名,例如,他们的国家,部门和使用位置。我不知道你是怎么做到的,我想知道是否有人能帮忙 Azure AD Authentication的默认设置不包括任何模型或帐户页,它只是将应用程序注册信息添加到您的appsettings.json,并添加使用标识的登录部分视图: @using Syste

我已经在我的ASP.NET核心应用程序中使用了来自Azure平台的公司active directory。我在第一次创建项目时将其设置为身份验证模型。我需要访问用户的其他详细信息,而不仅仅是他们的电子邮件地址或姓名,例如,他们的
国家
部门
使用位置
。我不知道你是怎么做到的,我想知道是否有人能帮忙

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>
@使用System.Security.Principal
    @if(User.Identity.IsAuthenticated) {
  • 你好@User.Identity.Name!
  • 退出
  • } 其他的 {
  • 登录
  • }

有没有什么方法可以让我扩展到上面提到的领域,或者我需要创建一些新的东西?tia.

应在委托人的索赔中

在一个控制器或视图中放置断点。在您的观察窗口中,您可以将用户强制转换为ClaimsPrincipal,并查看Azure广告返回的声明

有关索赔列表和映射,请参见


另外,ASP.NETCore2.1将AccountController和视图移动到Razor类库中,因此除了部分视图之外,您不会在常用目录中看到它们。您可以使用scaffolding identity工具将它们拉回到您的目录中,它应该位于委托人的声明中

在一个控制器或视图中放置断点。在您的观察窗口中,您可以将用户强制转换为ClaimsPrincipal,并查看Azure广告返回的声明

有关索赔列表和映射,请参见


另外,ASP.NETCore2.1将AccountController和视图移动到Razor类库中,因此除了部分视图之外,您不会在常用目录中看到它们。您可以使用scaffolding identity工具将它们拉回到您的目录中。默认情况下,令牌中只包含少数用户属性,然后映射到应用程序的用户声明原则。您可以使用退出用户属性:

注意:获取用户仅返回一组默认属性(BusinessPhone、displayName、givenName、id、jobTitle、mail、mobilePhone、officeLocation、preferredLanguage、姓氏、userPrincipalName)。使用$select可获取的其他属性和关系


是Microsoft Graph Auth文档,是ASP.NET Core的代码示例。

默认情况下,令牌中只包含少数用户属性,然后映射到应用程序的用户声明原则。您可以使用退出用户属性:

注意:获取用户仅返回一组默认属性(BusinessPhone、displayName、givenName、id、jobTitle、mail、mobilePhone、officeLocation、preferredLanguage、姓氏、userPrincipalName)。使用$select可获取的其他属性和关系


是Microsoft Graph Auth文档,是ASP.NET核心的代码示例。

您是否尝试过使用Azure AD API?是否尝试过使用Azure AD API?