مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

alibahman47

عضویت از 1395/11/13

کارنکردن remember me در حالت آنلاین (روی هاست)بودن سایت

  • جمعه 18 خرداد 1397
  • 15:05
تشکر میکنم

من Identity 2 استفاده کردم و دربخش Login هم گزینه مروبط remember me رو فعال کردم :

            var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

و در قسمت Startup.Auth.cs هم مدت کوکی رو 7 روز قرار دادم :

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using IdentitySample.Models;
using Owin;
using System;

namespace IdentitySample
{
    public partial class Startup
    {
        public void ConfigureAuth(IAppBuilder app)
        {
            app.CreatePerOwinContext(ApplicationDbContext.Create);
            app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
            app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
            app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);

            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                ExpireTimeSpan = TimeSpan.FromDays(7),
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login"),
                Provider = new CookieAuthenticationProvider
                {
                    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                        validateInterval: TimeSpan.FromMinutes(180),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                }
            });
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

و وقتی سایت رو localhost هست بخوبی کار میکنه یعنی وقتی موقع ورود به سایت تیک گزینه remember me رو میزنم وظعیت لاگین بودنم باقی میمونه وحتی اگه مرورگر رو ببندم و دوباره بازکنم همچنان لاگین میمونه .

ولی درحالتی که سایت روی هاست آنلاین هست بعد از ورود به سایت اگه تیک گزینه remember me رو هم بزنم نهایتا بعد از 5 دقیقه Logout میشم و این خیلی عجیبه !!

علت این مورد چیه و چطور میتونم حلش کنم ؟

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

alibahman47

عضویت از 1395/11/13

  • جمعه 18 خرداد 1397
  • 15:16

با توجه به اینکه میدونم Identitiy 2 از کوکی بر ذخیره اطلاعات لاگین بودن کاربر استفاده میکنه , پس احتمالا هاست نمیتونه در این مورد تاثیر گذار باشه ,

بنظرتون بخاطر نداشتن SSL ممکنه خود مرورگر کوکی ها هر 5 دقیه به 5 دقیقه منقضی بکنه .برای امنیت. این جز استاندارد های امنیتی همه مرورگر ها نیست ؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 18 خرداد 1397
  • 16:00

من این مشکل رو در ThemeShop داشتم با مقاله زیر حل شد

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

کاربر سایت

alibahman47

عضویت از 1395/11/13

  • شنبه 19 خرداد 1397
  • 01:28

دم شما گرم استاد حل شد heart

یه سوال دیگه هم بپرسم :

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

کاربرد این

shouldLockout: false

چیه ؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 19 خرداد 1397
  • 09:30

این گزینه ، اگر کاربر چند بار تلاش کنه برای ورود و موفق نباشه اکانتش رو قفل میکنه 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)