پروژه من یک پروژه .Net Core هست و در StartUp پروژه زمان منقضی شدن Authentication به این شکل تعیین شده است :
services.AddAuthentication(
options =>
{
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}
).AddCookie(options =>
{
options.LoginPath = new PathString("/login");
options.SlidingExpiration = true;
options.ExpireTimeSpan = TimeSpan.FromDays(10);
});
services.ConfigureApplicationCookie(options =>
{
options.ExpireTimeSpan = TimeSpan.FromDays(10);
options.SlidingExpiration = false;
});
این موضوع بر روی لوکال هاست به درستی انجام می شود و 10 روز authentication حفظ می شود ولی بر روی ویندوز سرور اصلی سریعا و بعد از چند دقیقه منقضی می شود.
یکی از دلایلی که باعث میشود Authentication شما بر روی سرور اصلی منقضی شود، ممکن است تفاوت در تنظیمات سیستم عامل باشد. در ویندوز، ساعت سیستم ممکن است ایرادی داشته باشد که باعث ایجاد تفاوت زمانی بین سرور و کلاینت میشود. اگر روی سرور خود دسترسی به تاریخ و ساعت سیستم ندارید، بهتره از سرویسهای NTP استفاده کنید تا ساعت سیستم را با نگهداری همیشگی به روز نگه دارید.
همچنین، برای اطمینان از اینکه مشکل از Authentication شما نیست، میتوانید از ابزارهایی مانند Fiddler و Wireshark برای بررسی ترافیک شبکه استفاده کنید. این ابزارها به شما اجازه میدهند تا ورودی و خروجی ارسالی و دریافتی از سرور را بررسی کنید و ببینید که Authentication شما چطور تنظیم شده است.
در نهایت، باید اطمینان حاصل کنید که کلاینتهای شما به درستی از تاریخ و ساعت سیستم خود استفاده میکنند و تفاوت زمانی بین سرور و کلاینت حداقل است. همچنین، بهتر است از HTTPS برای ارتباط با سرور استفاده کنید تا اطلاعات شما در حین ارسال به سرور رمزگذاری شوند و از امنیت بیشتری برخوردار شوید.