• 1401/09/23

عدم ورود به سایت و نمایش خطای 403 بعد از لاگین :

سلام و خسته نباشید 

ببخشید جناب مهندس بعد از لاگین کردن کاربران در سایت با این خطا مواجه میشن

403 - Forbidden: Access is denied.

You do not have permission to view this directory or page using the credentials that you supplied.

اینم کدهای فایل  program.cs در core6 

builder.Services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
    options.Password.RequireDigit = true;
    options.Password.RequireNonAlphanumeric = true;
    options.Password.RequireLowercase = true;
    options.Password.RequireUppercase = true;
    options.Password.RequiredUniqueChars = 0;

    options.User.RequireUniqueEmail = true;
    options.User.AllowedUserNameCharacters = "آاُاَاِب پ ت ث ج چ ح خ دذرزژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی  abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-";
    options.SignIn.RequireConfirmedAccount = true;

})
    .AddEntityFrameworkStores<WebGISDbContext>()
    .AddDefaultTokenProviders()
    .AddErrorDescriber<PersianIdentityErrorDescriber>();

builder.Services.ConfigureApplicationCookie(options =>
{
    options.LoginPath = "/Login";
    options.LogoutPath = "/LogOff";
    options.AccessDeniedPath = "/AccessDenied";
    options.ExpireTimeSpan = TimeSpan.FromDays(120);
});


builder.Services.AddAuthentication();

builder.Services.Configure<SecurityStampValidatorOptions>(o =>
    o.ValidationInterval = TimeSpan.FromSeconds(30));

builder.Services.Configure<DataProtectionTokenProviderOptions>(o =>
       o.TokenLifespan = TimeSpan.FromHours(3));
//#region data protection

//builder.Services.AddDataProtection()
//    .PersistKeysToFileSystem(new DirectoryInfo(Directory.GetCurrentDirectory() + "\\wwwroot\\Auth\\"))
//    .SetApplicationName("WebGIS_Bane")
//    .SetDefaultKeyLifetime(TimeSpan.FromDays(120));

//#endregion



#endregion
#region html encoder
builder.Services.AddSingleton<HtmlEncoder>(HtmlEncoder.Create(allowedRanges: new[] { UnicodeRanges.BasicLatin, UnicodeRanges.Arabic }));
#endregion
var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}
else
{
    app.UseStatusCodePagesWithReExecute("/{0}");
    app.UseExceptionHandler("/Error");
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseWebMarkupMin();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
      name: "areas",
      pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
    );
    endpoints.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}"
    );
});
app.Run();

البته بعد از این که کش مرور گر رو پاک میکنیم می تونند وارد سایت بشن اما بعد از مدتی دوباره با همون خطای 403 روبه رو میشن ...

عجیبه اینم کوکی که ست شده 

  • 1401/09/25
  • ساعت 21:09

سلام دوست من

این مشکل به دلیل عدم دسترسی به فولدر ها در سرور هستش

دستور data protection ای که استفاده کردین ، فایل ها رو در پوشه ای میسازه که پروژه شما بهش دسترسی نداره


  • 1401/09/26
  • ساعت 11:38

مهندس جان من dataProtection  رو کامنت کردم باز درست نشد

الان روت اصلی همانطور که در  endpoints  مشاهده می کنید مشخص شده و برای ورود به صفحه اصلی سایت باید لاگین بود حتما

و اگه لاگین نباشه کاربر رو هدایت میکنیم به صفحه لاگین

الان می فرماید چیکار کنیم. روت اصلی رو تغییر بدیم؟ یا چیکار کنیم موضوع حل شه؟


  • 1401/09/27
  • ساعت 23:09

در سرور امکان std_log رو فعال کنین تا خطا به صورت کامل لاگ بخوره


logo-enamadlogo-samandehi