Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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# Azure AD如何在用户对我们的应用程序进行身份验证时从用户处获取租户Id_C#_Asp.net Mvc_Entity Framework_Azure - Fatal编程技术网

C# Azure AD如何在用户对我们的应用程序进行身份验证时从用户处获取租户Id

C# Azure AD如何在用户对我们的应用程序进行身份验证时从用户处获取租户Id,c#,asp.net-mvc,entity-framework,azure,C#,Asp.net Mvc,Entity Framework,Azure,我已经使用OAuth2创建了一个具有Azure Active Directory身份验证的Asp.net应用程序,并按预期工作 现在,当用户登录到我的应用程序时,我将获得用户数据,如用户电子邮件id和提供商密钥 现在的要求是,我需要从响应中获取用户租户Id 是否有机会从响应中获取用户租户id 这里我使用getExternalLoginFoAsync()获取经过身份验证的用户数据 private IAuthenticationManager AuthenticationManager

我已经使用OAuth2创建了一个具有Azure Active Directory身份验证的Asp.net应用程序,并按预期工作

现在,当用户登录到我的应用程序时,我将获得用户数据,如用户电子邮件id和提供商密钥

现在的要求是,我需要从响应中获取用户租户Id

是否有机会从响应中获取用户租户id

这里我使用getExternalLoginFoAsync()获取经过身份验证的用户数据

  private IAuthenticationManager AuthenticationManager
    {
        get
        {
            return HttpContext.GetOwinContext().Authentication;
        }
    }
   var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
谢谢你的帮助

现在的要求是,我需要从响应中获取用户租户Id

loginInfo.Login.LoginProvider将如下所示:

https://sts.windows.net/{tenant-Id}/
或者,您可以通过以下代码段检索租户Id:

var tenantId = loginInfo.ExternalIdentity.FindFirst(c => c.Type == "http://schemas.microsoft.com/identity/claims/tenantid").Value;
并确保您的应用程序应具有以下权限: 1) 读取目录数据 2) 阅读所有用户的完整配置文件
3) 登录并阅读用户配置文件

请共享代码。通常租户id应该在结果对象中可用。感谢您的快速响应,因为我已经分享了我的代码片段。你能调查一下吗。