MHO*_*OOS 54 c# azure azure-web-sites azure-active-directory
我有以下代码,当我使用System.IdentityModel.Tokens.Jwt,Version = 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"]
}
});
}
Run Code Online (Sandbox Code Playgroud)
但是,只要我将此软件包升级到版本5的最新软件包,它就不再编译抱怨参考类型'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"]
});
}
Run Code Online (Sandbox Code Playgroud)
我再次降级此DLL并使用版本4.0.20622.1351,它开始编译.
配置Azure Active Directory是否有语法更改?
在Github上,我找不到使用最新软件包5.0.0的单个项目,并且所有软件都使用之前的软件包4.0.20622.1351.任何人都可以使用最新的System.IdentityModel.Tokens.Jwt 5.0.0对此进行说明,或者使用最新的软件包将我引导到Github上的一些项目?
Bre*_*ltz 29
TokenValidationParameters在汇编中:Microsoft.IdentityModel.Tokens
看起来你正在使用Katana(asp.net OWIN产品的第一个版本).Katana不支持5.0.0.你需要坚持使用4.x.
最新版本的asp.net依赖于S.IM.xx和M.IM.xxx 5.0. https://github.com/aspnet
Nat*_*ini 16
简短版本:确保使用Microsoft.Owin软件包的4.0或更高版本软件包,例如Microsoft.Owin.Security.Jwt.
正如提到的其他答案一样,System.IdentityModel.Tokens.Jwt从版本4.0到5.0 发生了重大变化.这导致了问题,因为像Microsoft.IdentityModel.Protocols这样的软件包依赖于5.0版本,而像Microsoft.Owin.Security.Jwt这样的旧版Katana/OWIN软件包仍然依赖于版本4.0进行硬编码.
好消息是,新的Katana 4.0版本正在修复此问题.4.0软件包(例如Jwt和Cookies)已作为预发布软件包发布到NuGet,并将很快作为稳定软件包提供.
我不知道何时或是否会得到修复,但我希望它会.我已经在Github网站上发布了这些问题,用于AAD扩展和Katana网站.您可以按照这些网站上的讨论和进度进行操作,如果您愿意,可以随时发布您对此问题的兴趣.
我无法理解在发布之前这不是一个问题."升级到.Net Core"不是一个合理的解决方案.我的应用程序暂时没有机会这样做,大多数非平凡的项目也是如此.
小智 6
所以我今天也遇到同样的问题。向下看它的底部后,我想我知道了答案。
简而言之,这是Katana项目(http://katanaproject.codeplex.com/)未能遵守Windows Azure Active Directory IdentityModel Extensions for .Net的当前更改的问题(https://github.com/AzureAD/适用于dotnet的azure-activedirectory-identitymodel-extensions)
有关更多详细信息,System.IdentityModel.Tokens.Jwt程序集版本4.0中提供了TokenValidationParameters,但在版本5.0中已将其移出。它的新主页现在位于程序集Microsoft.IdentityModel.Tokens中。
抱歉,我无法提供修复,这是对设计的更改,需要从其上大量重构Katana代码库。
| 归档时间: |
|
| 查看次数: |
29702 次 |
| 最近记录: |