升级到5.0.0后,TokenValidationParameters不再有效

我有以下代码,当我使用System.IdentityModel.Tokens.Jwt,版本= 4.0.20622.1351

private static void ConfigureAzureAD(IAppBuilder appBuilder) { appBuilder.UseWindowsAzureActiveDirectoryBearerAuthentication( new WindowsAzureActiveDirectoryBearerAuthenticationOptions { Tenant = ConfigurationManager.AppSettings["ida:Tenant"], TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters { ValidAudience = ConfigurationManager.AppSettings["ida:Audience"] } }); } 

然而,只要我升级这个包到最新的版本5,它不再编译抱怨引用types“TokenValidationParameters”声明它定义在System.IdentityModel.Token.Jwt中,但它不能被发现。

另外,如果您尝试使用以下编译器,则会警告您Audience已过时

  private static void ConfigureAzureAD(IAppBuilder appBuilder) { appBuilder.UseWindowsAzureActiveDirectoryBearerAuthentication( new WindowsAzureActiveDirectoryBearerAuthenticationOptions { Tenant = ConfigurationManager.AppSettings["ida:Tenant"], Audience = ConfigurationManager.AppSettings["ida:Audience"] }); } 

我再次降级这个DLL,并使用版本4.0.20622.1351,它开始编译。

是否对configurationAzure Active Directory进行了语法更改?

在Github上,我找不到使用最新的5.0.0包的单个项目,并且他们都使用之前的包4.0.20622.1351。 任何人都可以使用最新的System.IdentityModel.Tokens.Jwt 5.0.0揭示这一点,或者使用最新的包引导我到Github上的一些项目?

TokenValidationParameters汇编:Microsoft.IdentityModel.Tokens

看起来你正在使用Katana(第一个版本的asp.net OWIN产品)。 武士刀不支持5.0.0。 你需要坚持4.x.

最新版本的asp.net依赖于S.IM.xx和M.IM.xxx 5.0。 https://github.com/aspnet

我不知道什么时候或者这个问题会不会得到解决,但是我希望会这样。 我已经将这些问题发布在Github网站上,用于AAD扩展和Katana网站 。 您可以跟随在这些网站上的讨论和进展,如果您关心,您可以随时发布您的兴趣,看到这个问题。

我不明白在发布之前这不是一个问题。 “升级到.Net核心”不是一个合理的解决scheme。 我的应用程序没有这么好的机会,就像大多数不平凡的项目一样。

Katana目前不能使用IdentityModel的5.x版本。 https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet

但是,有一些工作正在解决这个问题。 时间轴尚未设置。

正如提到的其他答案一样, System.IdentityModel.Tokens.Jwt从4.0版到5.0版发生了重大的变化。 像Microsoft.IdentityModel.Protocols这样的一些软件包取决于版本> 5.0,它打破了老版本的Katana / OWIN中间件,如Microsoft.Owin.Security.Jwt ,它仍然是硬编码的,依赖于4.0版本。

好消息是,新的Katana 4.0.0版本正在修复这个问题。 在官方发布前, Katana Dev饲料提供预发包 。

Tl; dr – 确保使用Microsoft.Owin。*软件包的版本4.0或更高版本,例如Microsoft.Owin.Security.Jwt 。

所以我今天也遇到同样的问题。 看到底部后,我想我知道答案。

简而言之,Katana项目( http://katanaproject.codeplex.com/ )的问题是未能遵守Windows Azure Active Directory IdentityModel Extensions for .Net的当前更改( https://github.com/AzureAD/ azure-activedirectory-identitymodel-extensions-for-dotnet )

有关更多详细信息,TokenValidationParameters在System.IdentityModel.Tokens.Jwt程序集版本4.0中,但它已在版本5.0中移出。 它的新家现在正在组装Microsoft.IdentityModel.Tokens。

对不起,我不能提供一个修复它是一个devise更改,从中Katana代码库需要大幅度重构。