예제 #1
0
        protected void Session_Start()
        {
            Session["Enabled"] = true;
            var context = SessionStartContext();

            SessionUtilities.SetStartTime(context: context);
            if (WindowsAuthenticated(context))
            {
                Ldap.UpdateOrInsert(
                    context: context,
                    loginId: context.LoginId);
                context.Set();
            }
            if (context.Authenticated)
            {
                StatusesInitializer.Initialize(context: context);
            }
            switch (Request.AppRelativeCurrentExecutionFilePath.ToLower())
            {
            case "~/backgroundtasks/do":
            case "~/reminderschedules/remind":
                break;

            default:
                new SysLogModel(context: context).Finish(context: context);
                break;
            }
        }
예제 #2
0
        public async Task Invoke(HttpContext httpContext)
        {
            const string enabled = "Enabled";

            if (!httpContext.Session.Keys.Any(key => key == enabled))
            {
                AspNetCoreCurrentRequestContext.AspNetCoreHttpContext.Current.Session.Set("SessionGuid", System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(Strings.NewGuid())));
                httpContext.Session.Set(enabled, new byte[] { 1 });
                var context = SessionStartContext();
                SessionUtilities.SetStartTime(context: context);
                if (WindowsAuthenticated(context))
                {
                    Ldap.UpdateOrInsert(
                        context: context,
                        loginId: context.LoginId);
                    context.Set();
                }
                if (context.Authenticated)
                {
                    StatusesInitializer.Initialize(context: context);
                }
                switch (httpContext.Request.Path.Value.ToLower())
                {
                case "~/backgroundtasks/do":
                case "~/reminderschedules/remind":
                    break;

                default:
                    break;
                }
            }
            await _next.Invoke(httpContext);
        }
예제 #3
0
        private void InitializeSession()
        {
            Sessions.Set("StartTime", DateTime.Now);
            Sessions.Set("LastAccessTime", Sessions.Get <DateTime>("StartTime"));
            Sessions.Set("SessionGuid", Strings.NewGuid());
            if (Sessions.LoggedIn())
            {
                //TODO Ldap
                //if (Authentications.Windows())
                //{
                //    Ldap.UpdateOrInsert(HttpContext.Current.User.Identity.Name);
                //}
                var userId   = Sessions.UserId();
                var tenantId = Rds.ExecuteScalar_int(statements:
                                                     Rds.SelectUsers(
                                                         column: Rds.UsersColumn().TenantId(),
                                                         where : Rds.UsersWhere().UserId(userId)));
                Sessions.SetTenantId(tenantId);
                StatusesInitializer.Initialize(tenantId);
                var userModel = new UserModel(
                    SiteSettingsUtilities.UsersSiteSettings(),
                    userId);
                if (userModel.AccessStatus == Databases.AccessStatuses.Selected &&
                    !userModel.Disabled)
                {
                    userModel.SetSession();
                }
                else
                {
                    Authentications.SignOut();
                    SetAnonymouseSession();
                    var request = AspNetCoreHttpContext.Current.Request;
                    var url     = $"{request.Scheme}://{request.Host.Value}{request.Path.Value}{request.QueryString.Value}";
                    AspNetCoreHttpContext.Current.Response.Redirect(url);
                }
            }
            else
            {
                SetAnonymouseSession();
            }

            var @base = AspNetCoreHttpContext.Current.Request.PathBase;

            switch (@base.Value.ToLower())
            {
            case "~/backgroundtasks/do":
            case "~/reminderschedules/remind":
                break;

            default:
                new SysLogModel().Finish();
                break;
            }
        }
예제 #4
0
        protected void Application_Start()
        {
            Initialize();
            Context context = ApplicationStartContext();
            var     log     = new SysLogModel(context: context);

            UsersInitializer.Initialize(context: context);
            StatusesMigrator.Migrate(context: context);
            StatusesInitializer.Initialize(context: context);
            SetConfigrations();
            SiteInfo.Reflesh(context: context);
            log.Finish(context: context);
        }
예제 #5
0
        private void InitializeLog()
        {
            var log = new SysLogModel();

            SiteInfo.TenantCaches.Add(0, new TenantCache(0));
            SiteInfo.Reflesh();
            UsersInitializer.Initialize();
            ItemsInitializer.Initialize();
            StatusesMigrator.Migrate();
            SiteSettingsMigrator.Migrate();
            StatusesInitializer.Initialize();
            log.Finish();
        }
예제 #6
0
        private void InitializeLog()
        {
            ContextImplement context = ApplicationStartContext();
            var log = new SysLogModel(context: context);

            UsersInitializer.Initialize(context: context);
            ItemsInitializer.Initialize(context: context);
            StatusesMigrator.Migrate(context: context);
            SiteSettingsMigrator.Migrate(context: context);
            StatusesInitializer.Initialize(context: context);
            SetConfigrations(context: context);
            SiteInfo.Reflesh(context: context);
            log.Finish(context: context);
        }
예제 #7
0
        protected void Session_Start()
        {
            Session["StartTime"]      = DateTime.Now;
            Session["LastAccessTime"] = Session["StartTime"];
            Session["SessionGuid"]    = Strings.NewGuid();
            if (Sessions.LoggedIn())
            {
                if (Authentications.Windows())
                {
                    Ldap.UpdateOrInsert(HttpContext.Current.User.Identity.Name);
                }
                var userId   = Sessions.UserId();
                var tenantId = Rds.ExecuteScalar_int(statements:
                                                     Rds.SelectUsers(
                                                         column: Rds.UsersColumn().TenantId(),
                                                         where : Rds.UsersWhere().UserId(userId)));
                Sessions.SetTenantId(tenantId);
                StatusesInitializer.Initialize(tenantId);
                var userModel = new UserModel(
                    SiteSettingsUtilities.UsersSiteSettings(),
                    userId);
                if (userModel.AccessStatus == Databases.AccessStatuses.Selected &&
                    !userModel.Disabled)
                {
                    userModel.SetSession();
                }
                else
                {
                    Authentications.SignOut();
                    SetAnonymousSession();
                    Response.Redirect(HttpContext.Current.Request.Url.ToString());
                }
            }
            else
            {
                SetAnonymousSession();
            }
            switch (Request.AppRelativeCurrentExecutionFilePath.ToLower())
            {
            case "~/backgroundtasks/do":
            case "~/reminderschedules/remind":
                break;

            default:
                new SysLogModel().Finish();
                break;
            }
        }
예제 #8
0
        protected void Application_Start()
        {
            Application["StartTime"]      = DateTime.Now;
            Application["LastAccessTime"] = Application["StartTime"];
            Initialize();
            var log = new SysLogModel();

            SiteInfo.TenantCaches.Add(0, new TenantCache(0));
            SiteInfo.Reflesh();
            UsersInitializer.Initialize();
            ItemsInitializer.Initialize();
            StatusesMigrator.Migrate();
            SiteSettingsMigrator.Migrate();
            StatusesInitializer.Initialize();
            SetConfigrations();
            log.Finish();
        }
예제 #9
0
        protected void Session_Start()
        {
            var context = new Context();

            Session["StartTime"]      = DateTime.Now;
            Session["LastAccessTime"] = Session["StartTime"];
            Session["SessionGuid"]    = Strings.NewGuid();
            if (Sessions.LoggedIn())
            {
                if (Authentications.Windows())
                {
                    Ldap.UpdateOrInsert(
                        context: context,
                        loginId: context.LoginId);
                }
                var userModel = GetUser(context: context);
                context = userModel.GetContext();
                StatusesInitializer.Initialize(context: context);
                if (userModel.AccessStatus == Databases.AccessStatuses.Selected &&
                    !userModel.Disabled)
                {
                    userModel.SetSession();
                }
                else
                {
                    Authentications.SignOut();
                    SetAnonymousSession();
                    Response.Redirect(HttpContext.Current.Request.Url.ToString());
                }
            }
            else
            {
                SetAnonymousSession();
            }
            switch (Request.AppRelativeCurrentExecutionFilePath.ToLower())
            {
            case "~/backgroundtasks/do":
            case "~/reminderschedules/remind":
                break;

            default:
                new SysLogModel(context: context).Finish(context: context);
                break;
            }
        }
예제 #10
0
        protected void Application_Start()
        {
            Initialize();
            Context context = new Context(tenantId: 0)
            {
                Controller = "Global.asax",
                Action     = "Application_Start",
            };
            var log = new SysLogModel(context: context);

            ExtensionInitializer.Initialize(context: context);
            UsersInitializer.Initialize(context: context);
            StatusesMigrator.Migrate(context: context);
            StatusesInitializer.Initialize(context: context);
            NotificationInitializer.Initialize();
            SetConfigrations();
            SiteInfo.Reflesh(context: context);
            log.Finish(context: context);
        }