c# - .NET 5 - 添加 JwtBearer 作为默认架构时登录停止工作
问题描述
我在 .NET 5 中有一个项目来对用户进行身份验证,我有下面的结构并且效果很好!
var result = await signInManager.PasswordSignInAsync(user, pass, true, lockoutOnFailure: false);
但是,当我添加默认的AuthenticatteScheme和ChanllengeScheme以使用承载令牌时,它会通过PasswordSignInAsync停止工作,并且只有承载令牌auth有效。
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
是否可以使用PasswordSignInAsync通过表单对用户进行身份验证,但也可以使用不记名令牌来连接第三方服务?
这是完整的代码:
var key = Encoding.ASCII.GetBytes(configuration["App:Token:Secret"]);
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.RequireHttpsMetadata = false;
options.SaveToken = true;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(key),
ValidateIssuer = false,
ValidateAudience = false,
ClockSkew = TimeSpan.Zero
};
});
解决方案
推荐阅读
- r - rbind 后在同一列中保留不同的数据类型
- php - require_once 中的点以某种方式替换为破折号
- html - 悬停时围绕div圈
- css - 如何定位子菜单与主菜单平行
- python - 在数据框中添加列
- c# - 如何在 vuforia AR 上修复(锁定)我的图像模型?
- html - unable to change text color in ion-option when interface="popover"
- azure-active-directory - Kubernetes 和 AAD 身份验证
- angular - Angular SharePoint 2016 自定义列表显示数据
- html - Bind a value to the data-placeholder attribute in Angular 6