亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Blazor 0.9.0 和 ASP.NET Core 3 預覽版 4 進行 JWT 身份驗證

使用 Blazor 0.9.0 和 ASP.NET Core 3 預覽版 4 進行 JWT 身份驗證

C#
jeck貓 2022-12-24 14:51:52
我遵循了本教程:https ://medium.com/@st.mas29/microsoft-blazor-web-api-with-jwt-authentication-part-1-f33a44abab9d (適用于 .NET core 2.2)。這是我的啟動類    public class Startup    {        // This method gets called by the runtime. Use this method to add services to the container.        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940        public IConfiguration Configuration { get; }        public Startup (IConfiguration configuration)        {            Configuration = configuration;        }        public void ConfigureServices(IServiceCollection services)        {            services.AddMvc().AddNewtonsoftJson();            //services.AddMvcCore().AddAuthorization().AddNewtonsoftJson();            services.AddAuthentication(options =>            {                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;                options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;            })            .AddJwtBearer(options =>            {                options.TokenValidationParameters = new TokenValidationParameters                {                    ValidateIssuer = true,                    ValidateAudience = true,                    ValidateLifetime = true,                    ValidateIssuerSigningKey = true,                    ValidIssuer = Configuration["Jwt:Issuer"],                    ValidAudience = Configuration["Jwt:Audience"],                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]))                };            });            services.AddResponseCompression(opts =>            {                opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(                    new[] { "application/octet-stream" });            });        }我還在 Api 控制器 SampleDataController 上添加了 [Authorize]。我預計(根據帖子)在訪問數據時會出現 401(未經授權)錯誤,但我收到有關缺少授權中間件的投訴
查看完整描述

2 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

將兩者 app.UseAuthentication()和app.UseAuthorization() 之后 app.UseRouting()


app.UseRouting();

app.UseAuthentication();

app.UseAuthorization();

app.UseEndpoints(routes =>

     {

         routes.MapDefaultControllerRoute();

     });


查看完整回答
反對 回復 2022-12-24
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

如果您發送帶有授權令牌的請求,并且Startup.cs文件中未設置服務器授權,則 API 將返回錯誤消息<Called method> contains authorization metadata, but a middleware was not found that supports authorization...


解決方法是在Startup.cs文件中添加以下行,BETWEENapp.UseRouting()和app.UseEndpoints(...):


            app.UseRouting();


            //AUTHORIZING

            app.UseAuthentication();

            app.UseAuthorization();


            app.UseEndpoints(endpoints =>

            {

                endpoints.MapRazorPages();

                endpoints.MapControllers();

                endpoints.MapFallbackToFile("index.html");

            });


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關注
  • 230 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號