Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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# System.IdentityModel.Metadata和X509SecurityToken在ASP.NET Core中不可用_C#_Asp.net_.net_Azure_Active Directory - Fatal编程技术网

C# System.IdentityModel.Metadata和X509SecurityToken在ASP.NET Core中不可用

C# System.IdentityModel.Metadata和X509SecurityToken在ASP.NET Core中不可用,c#,asp.net,.net,azure,active-directory,C#,Asp.net,.net,Azure,Active Directory,我目前正试图基于Microsoft docs上的over从Azure Active Directory获取签名密钥,以便在我正在开发的ASP.NET核心Web API端点上验证HTTP请求 虽然我迁移了文章中显示的源代码,但ASP.NET核心web应用程序中似乎没有提供一些引用和类,例如System.IdentityModel.Metadata和X509SecurityToken,MetadataSerializer,等等,EntityDescriptor和X509RawDataKeyIdent

我目前正试图基于Microsoft docs上的over从Azure Active Directory获取签名密钥,以便在我正在开发的ASP.NET核心Web API端点上验证HTTP请求

虽然我迁移了文章中显示的源代码,但ASP.NET核心web应用程序中似乎没有提供一些引用和类,例如
System.IdentityModel.Metadata
X509SecurityToken
MetadataSerializer
,等等,
EntityDescriptor
X509RawDataKeyIdentifierClause

我已经在NuGet上搜索过了,但似乎没有System.IdentityModel可用的包,而且我也无法在ASP.NET Core中引用系统程序集


我应该在ASP.NET Core中使用哪些库?

如果使用.NET Core OpenID Connect或JWTBeareAuthentication中间件,则无需在ASP.NET Core中手动处理密钥翻转。请检查以下文件:

下面是使用Azure AD在ASP.NET核心web应用程序中调用web API的代码示例:


感谢您提供的代码示例,请立即查看。我正试图根据我链接的源代码检索JWT签名令牌,以便验证发送到MS Graph API发布的web API的JWT令牌。我是否需要实现
GetSigningCertificates(string metadataAddress)
?不,不需要使用此方法手动验证JWT令牌。您可以轻松地使用JWTBeareAuthentication中间件来验证JWT。这个组件将自动为您处理密钥翻转。我完全实现了中间件,但我收到了401,尽管我提供了MS Graph发布的JWT令牌:
WWW-Authenticate→承载错误=“无效的令牌”,错误描述=“未找到签名密钥”
-编辑:我的令牌验证参数配置-您是如何获得令牌的?如果您可以共享可以解码的令牌头,这将很有帮助。问题的原因是未设置权限,因此OWIN中间件不知道从何处检索密钥。请将权限设置为
https://login.microsoftonline.com/{tenant}
并告诉我是否适合您。