Example #1
0
        public Task Invoke(HttpContext httpContext)
        {
            #region Заголовок X-Forwarded-For запрещен
            if (httpContext.Request.Headers.TryGetValue("X-Forwarded-For", out _))
            {
                httpContext.Response.ContentType = "text/plain; charset=utf-8";
                return(httpContext.Response.WriteAsync("Заголовок X-Forwarded-For запрещен"));
            }
            #endregion

            // IP адрес пользователя
            string IP = httpContext.Connection.RemoteIpAddress.ToString();

            // Проверка кук для прохождения авторизации
            if (IsAuth.Auth(httpContext.Request.Cookies, IP, out bool IsConfirm2FA))
            {
                // Авторизация в Telegram
                if (!TelegramBot.IsAuth(IP))
                {
                    httpContext.Response.ContentType = "text/html";
                    return(httpContext.Response.WriteAsync(TelegramBot.AuthToHtml(IP)));
                }

                // Успех
                return(_next(httpContext));
            }

            // Редикт на страницу авторизациии
            return(RewriteTo.Local(httpContext, "auth"));
        }
Example #2
0
        public IActionResult Index()
        {
            if (IsAuth.Auth(HttpContext.Request.Cookies, HttpContext.Connection.RemoteIpAddress.ToString(), out _))
            {
                return(LocalRedirect("/"));
            }

            return(View("/Views/Auth/Base.cshtml"));
        }
Example #3
0
        public Task Invoke(HttpContext httpContext)
        {
            #region Заголовок X-Forwarded-For запрещен
            if (httpContext.Request.Headers.TryGetValue("X-Forwarded-For", out _))
            {
                httpContext.Response.ContentType = "text/plain; charset=utf-8";
                return(httpContext.Response.WriteAsync("Заголовок X-Forwarded-For запрещен"));
            }
            #endregion

            // IP адрес пользователя
            string IP = httpContext.Connection.RemoteIpAddress.ToString();

            // Проверка кук для прохождения авторизации
            if (IsAuth.Auth(httpContext.Request.Cookies, IP, out bool IsConfirm2FA))
            {
                // База Json
                var jsonDB = Service.Get <JsonDB>();

                // 2FA пройдена/отключена и запрос на страницу "/auth/confirm"
                if ((!jsonDB.Base.EnableTo2FA || IsConfirm2FA) && httpContext.Request.Path.Value.StartsWith("/auth/confirm"))
                {
                    return(RewriteTo.Local(httpContext, ""));
                }

                // Авторизация 2FA
                if (jsonDB.Base.EnableTo2FA)
                {
                    // 2FA пройдена или запрос на страницу "/auth/confirm"
                    if (IsConfirm2FA || httpContext.Request.Path.Value.StartsWith("/auth/confirm"))
                    {
                        return(_next(httpContext));
                    }

                    // Редикт на страницу 2FA
                    return(RewriteTo.Local(httpContext, "auth/confirm"));
                }

                // Успех
                return(_next(httpContext));
            }

            // Редикт на страницу авторизациии
            return(RewriteTo.Local(httpContext, "auth"));
        }