Example #1
0
        public bool Login(out string msg)
        {


            bool isLoginSuccess = false;
            msg = string.Empty;
            try
            {
                //Log.Debug("Start to login, LoginEmail is:" + _UserInfo.LoginEmail);
                DateTime startTime = DateTime.Now;
                if (HttpContext.Current.Request.IsLocal)
                {
                    //Log.Debug("The account is Local account." + _UserInfo.LoginEmail);
                    bool[] m1 = new bool[32];
                    bool[] m2 = new bool[32];
                    for (int i = 0; i < m1.Length; i++)
                    {
                        m1[i] = true;
                        m2[i] = true;
                    }

                    _APIUserPrincipal = new APIPrincipal(LocalUserId, LocalUserLoginEmail, m1, m2);
                    if (_APIUserPrincipal == null)
                    {
                        //Log.Warning("To build local account fail.");
                    }
                }
                else
                {
                    _APIUserPrincipal = APIPrincipal.Login(_UserInfo.LoginEmail, _Password, out msg);
                    if (_APIUserPrincipal == null)
                    {
                        //Log.Debug("To build " + _UserInfo.LoginEmail + " account fail.");
                    }
                }

                GlobalStatics.MonitorProcessTime("Login from Authentication Center", ref startTime, DateTime.Now);
                //Log.Debug(_APIUserPrincipal);
                if (_APIUserPrincipal != null)
                {
                    CheckLoginedUser(ref msg, ref isLoginSuccess, ref startTime);
                }
                else
                {
                    isLoginSuccess = false;
                    msg = "Failed to get UserPrincipal entity by UserId.";
                }
                HttpContext.Current.User = _APIUserPrincipal;
            }
            catch (Exception)
            {
                isLoginSuccess = false;
                //Log.Error(ex);
            }
            //Log.Debug("Login status: " + isLoginSuccess + ":" + msg + ",LoginEmail:" + _UserInfo.LoginEmail);
            return isLoginSuccess;
        }
        public static APIPrincipal Login(string email, string pwd, out string msg)
        {
            APIPrincipal p = null;
            bool[] m1 = new bool[32];
            bool[] m2 = new bool[32];
            int i1, i2;
            long iid;
            msg = string.Empty;
            //Log.Info( "calling WS to verify login and get rights...");
            string gid = new UserManager().Login(email, pwd, GlobalStatics.ProductId, out i1, out i2, out iid, out msg);
            APIPrincipal.fillPermissionArray(i1, i2, out m1, out m2);

            if (gid.Length > 0)
                p = new APIPrincipal(gid, email, m1, m2);
            else
            {
                //Log.Error(email + ", Message: " + msg);
            }
            return p;
        }
        private void GetPrincipal()
        {
            try
            {
                DateTime currentTime = DateTime.Now;
                HttpCookie cookie;
                cookie = HttpContext.Current.Request.Cookies[GlobalStatics.CookieName];
                #region If is local machine, use localuser
                if (HttpContext.Current.Request.IsLocal)
                {
                    bool[] m1 = new bool[32];
                    bool[] m2 = new bool[32];
                    for (int i = 0; i < m1.Length; i++)
                    {
                        m1[i] = true;
                        m2[i] = true;
                    }

                    _APIUserPrincipal = new APIPrincipal(LocalUserId, LocalUserLoginEmail, m1, m2);
                    HttpContext.Current.User = _APIUserPrincipal;

                    UserManager userManager = new UserManager();
                    _User = userManager.GetUserbyId(ConfigurationManager.AppSettings["LocalUserId"]);
                    _User.Roles = new UserManager().GetUserRoles(ConfigurationManager.AppSettings["LocalUserId"]);
                    this.SavePrin(_APIUserPrincipal);
                    this.CheckPermittedRole();
                    //this.CheckEnvironment();
                    return;
                }

                #endregion disable EdgarAuth for special needs

                //Log.Debug(cookie);

                GlobalStatics.MonitorProcessTime("First log", ref currentTime, DateTime.Now);
                if (cookie != null)
                {
                    _User = GetUserFromCookie();
                    if (_User != null)
                    {
                        this.CheckPermittedRole();
                        //this.CheckEnvironment();
                    }
                    else
                    {
                        this.GoToLogin();
                        //Log.Error("Failed to get auth info from cookie.");
                    }
                }
                else
                {
                    this.GoToLogin();
                }
                GlobalStatics.MonitorProcessTime("EndAuthenticate", ref currentTime, DateTime.Now);
            }
            catch (Exception ex)
            {
                //Log.Error(ex);
                throw ex;
            }
        }
 private void SavePrin(APIPrincipal newUser)
 {
     HttpCookie cookie = HttpContext.Current.Request.Cookies[GlobalStatics.CookieName];
     if (cookie == null)
     {
         //Log.WriteLog(Category.General, Level.Error, "can't get cookie, sth wrong");
         return;
     }
     //cookie["Prin"] = SecurityProvider.Encrypt40(newUser.ToString(), GlobalStatics.Enkey);
     cookie.Expires = DateTime.Now.AddDays(2);
     //cookie.Domain = GlobalStatics.cookieDomain;
     HttpContext.Current.Response.Cookies.Add(cookie);
 }