برای Authorize کردن تمام صفحات باید در فایل Startup.cs این دو میان افزار اضافه کنیم
app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapRazorPages().RequireAuthorization(); });
بعد در بخش ConfigureServices جایی که razorpages اضافه کردم این کد رو بهش اضافه کنیم
services.AddRazorPages().AddRazorPagesOptions(options=> { options.Conventions.AuthorizeFolder("/") .AllowAnonymousToPage("/Account/Login"); });
همین کار رو برای mvc و blazor به همین صورت است (نمیدونم ولی امتحان کنید!)
فقط نکته ای که هست اینکه باید AllowAnonymouseToPage مشخص کنید وگرنه به مشکل می خورید
این هم یک منبع خوب برای razor page authorization
آموزش تموم شد ولی یادتان باشد که قبلش AddAuthentication هم اضافه کرده باشید !
services.AddAuthentication(options => { options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;}) .AddCookie(options => { options.LoginPath = "/Account/Login" options.LogoutPath = "/Logout" options.ExpireTimeSpan = TimeSpan.FromMinutes(43200); });