【发布时间】:2018-02-04 21:27:58
【问题描述】:
在我的 Asp.Net 核心 web api 中,我使用了带有 Jwt 不记名身份验证的 Identity。它工作顺利,没有任何大惊小怪。这是代码,
ConfigureServices():
services.AddIdentity<ApplicationUser, IdentityRole<int>>()
.AddEntityFrameworkStores<DataContext, int>()
.AddDefaultTokenProviders();
配置():
app.UseJwtBearerAuthentication(new JwtBearerOptions()
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
TokenValidationParameters = new TokenValidationParameters()
{
ValidIssuer = "localhost:4200",
ValidAudience = "localhost:4200",
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("SuperSecretKey_GetThisFromAppSettings")),
ValidateLifetime = true
}
});
今天我升级到 .net core 2.0 和整个技术堆栈。从那里可用的有限帮助中,我修改了这样的代码..
ConfigureServices()
services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<DataContext>()
.AddDefaultTokenProviders();
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.Authority = "localhost:4200";
options.Audience = "localhost:4200";
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuerSigningKey = true,
ValidateIssuer = true,
ValidateLifetime = true,
ValidIssuer = "localhost:4200",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("SuperSecretKey_GetThisFromAppSettings"))
};
});
配置()
app.UseAuthentication();
现在身份验证不起作用。看起来它的内部配置为使用 Cookie 身份验证。
还有其他人遇到过这种情况吗?非常感谢您对此的任何帮助!
谢谢,
【问题讨论】:
标签: asp.net asp.net-web-api asp.net-identity jwt .net-core-2.0