ConfigureServices中:
#region 注冊認證服務
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(o =>
{
o.TokenValidationParameters = new TokenValidationParameters
{
ValidIssuer = "Issuer",
ValidAudience = "Audience",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("JwtAuth:SecurityKey")),
RequireSignedTokens = true,
ValidateAudience = false,
ValidateIssuer = true,
ValidateIssuerSigningKey = true,
RequireExpirationTime = true,
ClockSkew = TimeSpan.FromSeconds(300),
ValidateLifetime = true
};
});
#endregion
Configure中:
app.UseAuthentication().UseMvc();
controller中:
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme,Policy = "xxxxx")]
public class XXXController : Controller
{
//do....
}
這樣功能都正常,但是controller中把
AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme去掉就會認證失敗,之前的專案中一樣的寫法沒加過這個,為什么現在就需要加這個?仔細看了下控制臺輸出info,不加一段會顯示使用默認認證方式去認證,結果失敗,加上之后顯示使用JwtBearer認證成功(僅限第一次,之后再有呼叫就顯示默認認證成功了),不知道是哪里的問題,感覺是哪里沒設定對?參考了一下這個https://stackoverflow.com/questions/51263883/webapi-authorize-attribute-with-services-addidentity-returns-404-not-found里面說的,但是也不太明白,望大神給指點下。
最后希望大家能給推薦點認證程序介紹的文章;)
uj5u.com熱心網友回復:
額。。。不是吧。。。。uj5u.com熱心網友回復:
https://mp.weixin.qq.com/s/9F90xa61n3RS_qfbPxomdw轉載請註明出處,本文鏈接:https://www.uj5u.com/net/119047.html
標籤:C#
上一篇:大家現在一般用哪個版本的 VS
下一篇:c#
