Startup.cs
中使用了这样的工作代码:
public void Configuration(IAppBuilder app)
{
app.UseJwtBearerAuthentication(new MyJwtOptions());
...
}
然后还有这个:
public MyJwtOptions()
{
var issuer = "https://issuer.com";
var audience = "https://www.audience.com";
var key = Convert.FromBase64String("secretKey");
AllowedAudiences = new[] {audience};
IssuerSecurityTokenProviders = new[] {new SymmetricKeyIssuerSecurityTokenProvider(issuer, key)};
}
错误来到这里:
app.UseJwtBearerAuthentication()
我搜遍了所有试图找到为什么这不再与DNX 4.5和DNX Core 5.0兼容。 Intellisense试图帮助我并告诉我
"您必须添加对Microsoft.AspNet.Http.Abstractions的引用"
这样做根本没有用。我找到了其他答案,建议添加对Microsoft.AspNet.Authentication.OAuthBearer
的引用,也没有运气。
我找到了另一个答案,建议尝试这样:
services.Configure<OAuthBearerAuthenticationOptions>(bearer =>
{
bearer.TokenValidationParameters.IssuerSigningKey = key;
bearer.TokenValidationParameters.ValidAudience = TokenAudience;
bearer.TokenValidationParameters.ValidIssuer = TokenIssuer;
});
问题在于我不知道如何为SecureKey
IssuerSigningKey
有没有其他人成功使用最新版本的Asp.net 5 fc1-final?
我发现的几乎所有示例都是针对自己创建和验证jwt令牌的应用程序。在我的情况下,我使用Thinktecture服务器来验证令牌。这就是为什么我需要audience
和issuer
以及为什么我有点失去了尝试创建RsaKey
的原因。因为密钥不能仅仅是我在XML文件中本地创建的密钥,所以需要在Thinktecture服务器上将其作为受信任的应用程序进行身份验证
答案 0 :(得分:1)
Microsoft.AspNet.Authentication.OAuthBearer已重命名为JwtBearer。 https://github.com/aspnet/Announcements/issues/87
答案 1 :(得分:1)
在rc-1版本中,我的问题没有解决方案。从这里发布另一个问题我得知这已经通过rs-2更新解决了。
如果你需要在2月2日的官方发布之前更新rs-2,你可以运行dvnm update -u
来获取rc-2的最新夜间版本