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); }