sign out شدن کاربر پس از 30 الی 50 دقیقه در Asp.net Core
سلام و عرض ادب خدمت دوستان و اساتید گرامی
بنده پروزه ای رو انجام دادم با asp.net core2.1
بنده مشکلی دارم که کاربر پس از تقریبا 30 40 دقیق sign out میشه
هنگام لاگین کردین فیلد مربوطه رو هم true کردم
توی مرورگر هم وقتی لاگین انجام میشه کوکی ساخته میشه و دو هفته هم تاریخ داره ولی با این وجود باز هم از کاربر log out میشه
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
//db Context
services.AddDbContext<ApplicationDbContext>(option => option.UseSqlServer(Configuration.GetConnectionString("myConnectionString"), builder => builder.UseRowNumberForPaging()));
//Add Identity
services.AddIdentity<ApplicationUser, ApplicationRole>(option =>
{
option.Password.RequireDigit = false;
option.Password.RequiredLength = 5;
option.Password.RequireNonAlphanumeric = false;
option.Password.RequiredUniqueChars = 0;
option.Password.RequireUppercase = false;
option.Password.RequireLowercase = false;
option.User.RequireUniqueEmail = false;
}).AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.ConfigureApplicationCookie(option => option.LoginPath = "/Login");
services.ConfigureApplicationCookie(option => option.AccessDeniedPath = "/Login");
//tempdata
services.Configure<CookieTempDataProviderOptions>(options =>
{
options.Cookie.IsEssential = true;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
// app.UseExceptionHandler("/PageNotFound");
}
else
{
app.UseExceptionHandler("/PageNotFound");
app.UseHsts();
}
// app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
// my middle weare
AuthAppBuilderExtensions.UseAuthentication(app);
app.UseAuthentication();
}
پاسخ هوش مصنوعی
به نظر می رسد که مشکل شما در زمان انقضای کوکی یا تنظیمات احراز هویت باشد. برای تنظیم زمان انقضای کوکی و جلوگیری از لاگین خودکار، می توانید در متد ConfigureServices خود تنظیماتی را اضافه کنید. در اینجا یک نمونه از کد مشابه که شما می توانید استفاده کنید آورده شده است:
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = "/Login";
options.AccessDeniedPath = "/Login";
options.SlidingExpiration = true; // برای تمدید زمان انقضای کوکی با هر درخواست جدید
options.ExpireTimeSpan = TimeSpan.FromMinutes(50); // تنظیم زمان انقضای کوکی به 50 دقیقه
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true; // لازم برای قابلیت کوکی
});
این تغییرات به کوکی هویت شما این امکان را می دهد که به مدت 50 دقیقه معتبر بماند و در صورت انجام درخواست های جدید، زمان انقضای آن تمدید شود. همچنین از SlidingExpiration استفاده شده است تا کاربران در صورت فعالیت در سایت، به طور خودکار از سیستم خارج نشوند.
این لینک در مورد همین مشکل شما توی Asp.net Core هست. مطالعه کنید ببینید مشکلتون رو حل میکنه یا نه.
با تشکر مشکل در خط 71 و 72 بود که authentication به دو شکل مختلف دو بار فراخوانی شده بود.
با سالام خدمت دوستان عزیز
بنده چند روز پیش این سوال رو اینجا مطرح کردم و در نهایت به این نتیجه رسیدم که مشکل در خط 71 و 72 بودما اینطور نبود
تمام اینترنت رو زیر رو کردم و راهکار های مختلفی رو گفته بودن مثل این لینک از استک اور فلو یا https://github.com/aspnet/Identity/issues/1389
و خیلی نمونه های دیگه اما هیچکدوم مشکل من رو حل نکرد
خیلی جاها هم گفته بودن که این یه باگ هست
با زحمت خیلی زیاد تمام جداول آیدنتیتی رو از دل یه پروژه بزرگ فروشگاهی و بازاریابی حذف کردم و با جداول جدید خودم و هسته آیدنتیتی authentication , autherization رو پیاده کردم
ولی باز مشکل برطرف نشد.
تا در نهایت متوجه شدم که به خاطر تنظیمات ssl بوده و هیچ ربطی به identity نداشته و روی پروتوکل https بدون هیچ مشکلی کار میکنه ولی روی http کوکی رو معتبر نمیدونه و باز از کاربر یوزر نیم و پسوورد رو میخواد(چه در لوکال و چه در سرور).
گفتم که این تجربه رو باهاتون درمیون بزام شاید یه جایی به دردتون بخوره
- جلوگیری از اد شدن خودکار در گروه و کانال تلگرام
- کم کردن حجم فیلم توسط کد در Asp net core
- چه کسانی استوری تلگرام را می بینند ؟
- برای کسب و کار تلگرام پرمیوم بهتره یا واتس اپ بیزینس ؟
- جلوگیری از انتشار غیرمجاز مطالب در کانال های تلگرامی
- تفاوت های تلگرام و واتس اپ چیست ؟
- چرا استوری های واتس اپ برای دوستان نمایش داده نمیشن ؟
- چند تا استوری رایگان می تونیم تلگرام بذاریم ؟
- خطای Severity Code Description Project هنگام استارت پروژه
- کار نکردن navBar و sideBar در پروژه Asp.net core
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2