Пример #1
0
    protected void UpdateLogout(bool hideHeader)
    {
        bool isLoggedIn    = Session["IsLoggedIn"] != null && Convert.ToBoolean(Session["IsLoggedIn"]);
        bool isStakeholder = Session["IsStakeholder"] != null && Convert.ToBoolean(Session["IsStakeholder"]);
        bool isMasterAdmin = Session["IsMasterAdmin"] != null && Convert.ToBoolean(Session["IsMasterAdmin"]);
        bool isAdmin       = Session["IsAdmin"] != null && Convert.ToBoolean(Session["IsAdmin"]);
        bool isPrincipal   = Session["IsPrincipal"] != null && Convert.ToBoolean(Session["IsPrincipal"]);

        bool isAdminView = isStakeholder || isMasterAdmin || isAdmin;


        if (!isLoggedIn)
        {
            Logout(hideHeader);
            return;
        }

        // if another session logged in - logout here
        if (!(new List <int> {
            -5, -7, -8
        }).Contains((int)Session["StaffID"]))
        {
            UserLogin userlogin = (Session["PatientID"] == null) ?
                                  UserLoginDB.GetByUserID(Convert.ToInt32(Session["StaffID"]), -1) :
                                  UserLoginDB.GetByUserID(-1, Convert.ToInt32(Session["StaffID"]));

            if (userlogin == null || userlogin.SessionID != HttpContext.Current.Session.SessionID.ToString())
            {
                Logout(hideHeader);
                return;
            }

            if (Session["SiteID"] == null &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/LoginV2.aspx") &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/LogoutV2.aspx") &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/SelectSiteV2.aspx"))
            {
                Response.Redirect("~/Account/SelectSiteV2.aspx?from_url=" + Request.RawUrl);
            }


            if (!isAdminView && Session["OrgID"] == null &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/Login.aspx") &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/Logout.aspx") &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/SelectOrg.aspx") &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/SelectSite.aspx"))
            {
                Response.Redirect("~/Account/SelectOrgV2.aspx?from_url=" + Request.RawUrl);
            }

            if (!(new List <int> {
                -5, -7, -8
            }).Contains((int)Session["StaffID"]))
            {
                UserLoginDB.UpdateLastAccessTime(userlogin.UserloginID, DateTime.Now, Request.RawUrl.Contains("/Account/Logout.aspx") ? "" : Request.RawUrl);
            }
        }
    }
Пример #2
0
    protected void UpdateLogout(bool hideHeader)
    {
        UserView userView = UserView.GetInstance();

        if (!userView.IsLoggedIn)
        {
            Logout(hideHeader);
            return;
        }

        // if another session logged in - logout here
        if (Session["StaffID"] == null || !(new List <int> {
            -5, -7, -8
        }).Contains((int)Session["StaffID"]))
        {
            UserLogin userlogin = null;
            if (HttpContext.Current.Session != null && HttpContext.Current.Session["DB"] != null)
            {
                userlogin = !userView.IsPatient ?
                            UserLoginDB.GetByUserID(Convert.ToInt32(Session["StaffID"]), -1) :
                            UserLoginDB.GetByUserID(-1, Convert.ToInt32(Session["PatientID"]));
            }

            if (userlogin == null || userlogin.SessionID != HttpContext.Current.Session.SessionID.ToString())
            {
                Logout(hideHeader);
                return;
            }

            if (Session["SiteID"] == null &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/LoginV2.aspx") &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/LogoutV2.aspx") &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/SelectSiteV2.aspx"))
            {
                Response.Redirect("~/Account/SelectSiteV2.aspx?from_url=" + Request.RawUrl);
            }


            if (!userView.IsAdminView && Session["OrgID"] == null &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/LoginV2.aspx") &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/LogoutV2.aspx") &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/SelectOrgV2.aspx") &&
                !HttpContext.Current.Request.Url.LocalPath.Contains("/Account/SelectSiteV2.aspx"))
            {
                Response.Redirect("~/Account/SelectOrgV2.aspx?from_url=" + Request.RawUrl);
            }

            UserLoginDB.UpdateLastAccessTime(userlogin.UserloginID, DateTime.Now, Request.RawUrl.Contains("/Account/Logout.aspx") ? "" : Request.RawUrl);
        }
    }