Как сделать страницу автоматического выхода через mvc через некоторое время - PullRequest
0 голосов
/ 05 февраля 2020

Title- asp. net -mvc5 Автоматический выход из системы Как сделать автоматический выход из формы через некоторое время в asp. net -mvc5 и автоматически перенаправить на страницу входа

Ответы [ 3 ]

1 голос
/ 05 февраля 2020

Вам необходимо создать переменную сеанса для метода Login. Сессия будет создана Session["Userid"]=Userid;. Затем вам нужно создать пользовательский атрибут для проверки времени ожидания сеанса. Вам необходимо выполнить следующие шаги:

  • Создать переменную сеанса в login () (метод Post)
  • Создать файл класса в вашем проекте MVC.
  • Скопируйте и вставьте приведенный ниже код в этот файл.

    publi c class SessionTimeOutAttribute: ActionFilterAttribute {publi c override void OnActionExecuting (ActionExecutingContext filterContext) {

        Controller controller = filterContext.Controller as Controller;
    
        HttpContext httpContext = HttpContext.Current;            
        var rd = httpContext.Request.RequestContext.RouteData;
        string currentAction = rd.GetRequiredString("action");
        string currentController = rd.GetRequiredString("controller");
    
        if (HttpContext.Current.Session["UserId"] == null)
        {
            filterContext.Result = new RedirectResult("~/Account/Login?ReturnUrl=" + currentController + "/" + currentAction);
            return;
        }
        base.OnActionExecuting(filterContext);
    }
    

    }

  • добавить атрибут [SessionTimeOut] на каждом контроллере.

    [SessionTimeOut]

    publi c class ControllerName: Controller {

0 голосов
/ 09 февраля 2020

Если вам необходимо полное управление пользователями, посмотрите это видео

https://youtu.be/912q3TEF25U

Шаблон разработки программного обеспечения с управлением пользователями на основе ролей с использованием ASP. NET MVC 5. Попробуйте бесплатно

0 голосов
/ 07 февраля 2020

Вы должны добавить файл Statup.cs.
1. Добавить Statup Класс вашего проекта из новых списков элементов.
2. Добавьте следующую строку в ConfigureService.

public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc(options => options.EnableEndpointRouting = 
                     false).SetCompatibilityVersion(CompatibilityVersion.Version_3_0);

        services.AddAuthorization();

        services.Configure<ForwardedHeadersOptions>(options =>
        {
            options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
            // we do this because we trust the network
            options.KnownNetworks.Clear();
            options.KnownProxies.Clear();
        });

        services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
                .AddCookie(x =>
                {
                    x.Cookie.Name = "WriteSomeThings";
                    x.Cookie.SecurePolicy = CookieSecurePolicy.Always;
                    x.Cookie.SameSite = SameSiteMode.Strict;
                    x.Cookie.HttpOnly = true;
                    x.Cookie.IsEssential = true;
                    x.SlidingExpiration = true;
                    x.ExpireTimeSpan = TimeSpan.FromHours(8);//For Auto Logout 
                    x.LoginPath = "/User/LogOn";
                    x.LogoutPath = "/User/LogOff";
                    x.AccessDeniedPath = "/Home/AccessDenied";

                });

    }

x.ExpireTimeSpan = TimeSpan.FromHours (8) => Эта строка позволяет автоматически выходить из системы через 8 часов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...