/// <summary> /// /// </summary> /// <param name="token"></param> /// <returns></returns> public bool IsTokenExpired(Access_Token token) { bool result = false; long timeNow = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); if (timeNow >= token.Request_Time + token.Expirse_In) { result = true; } return(result); }
private void BankCardRecognition_Click(object sender, EventArgs e) { // OcrDemo.BankCard(imagePath); string getRecognitonString = ""; string errorString = ""; var tempTokenModel = Access_Token.GetAccessToken(); if (tempTokenModel.IsSuccess) { BankCardRecognitionModel tempModel = BankCardRecognition.GetBankCardRecognitionString(tempTokenModel.SuccessModel.access_token, imagePath, ref getRecognitonString, out errorString); tb_Json.Text = getRecognitonString; } }
public Access_Token GetLocAccessToken(long user_id) { Access_Token token = null; KuanMaiEntities db = new KuanMaiEntities(); var etoken = from p in db.Access_Token where p.Mall_Type_ID == this.Mall_Type_ID && p.User_ID == user_id select p; if (etoken != null) { token = etoken.ToList <Access_Token>()[0]; } return(token); }
/// <summary> /// Get access token from local db /// </summary> /// <param name="user_id"></param> /// <param name="mall_type_id"></param> /// <returns></returns> private Access_Token GetLocalToken(long user_id, int mall_type_id) { Access_Token token = null; KuanMaiEntities db = new KuanMaiEntities(); var etoken = from p in db.Access_Token where p.Mall_Type_ID == mall_type_id && p.User_ID == user_id select p; if (etoken != null) { token = etoken.ToList <Access_Token>()[0]; } return(token); }
public ActionResult CallBack() { string code = Request["code"]; string mall_type_id = Request["mall"]; int mall = 0; if (!int.TryParse(mall_type_id, out mall)) { return(RedirectToAction("Login", new { message = "商城类型丢失,请不要随意更改URL" })); } if (string.IsNullOrEmpty(code)) { return(RedirectToAction("Login", new { message = "商城授权码丢失,请不要随意更改URL" })); } AccessManager accessManager = new AccessManager(mall); Access_Token token = null; try { token = accessManager.AuthorizationCallBack(code); } catch (KM.JXC.Common.KMException.KMJXCException ex) { if (ex.Level == Common.KMException.ExceptionLevel.ERROR) { return(RedirectToAction("Login", new { message = ex.Message })); } } catch (Exception bex) { return(RedirectToAction("Login", new { message = "未知错误,请重新授权" })); } if (token == null) { return(RedirectToAction("Login", new { message = "授权失败,请重新授权" })); } FormsAuthentication.RedirectFromLoginPage(token.User_ID.ToString(), false); return(Redirect("/Shop/Dashboard")); }
/// <summary> /// /// </summary> /// <param name="userId"></param> /// <returns></returns> public Access_Token GetAccessToken(BUser loginUser) { Access_Token token = null; token = this.GetLocalToken(loginUser.ID, this.Mall_Type_ID); if (token != null) { long timeNow = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); //last access token is expried if (timeNow >= token.Expirse_In + token.Request_Time) { return(null); } else { return(token); } } return(null); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); string user_id = filterContext.HttpContext.User.Identity.Name; if (string.IsNullOrEmpty(user_id)) { filterContext.HttpContext.Response.Redirect("/Home/Login?message=登录信息过期,请重新登录"); } //Verify if the cookie user is a valid user UserManager userMgr = new UserManager(int.Parse(user_id), null); BUser user = userMgr.CurrentUser; if (user == null) { filterContext.HttpContext.Response.Redirect("/Home/Login?message=登录信息丢失,请重新登录并授权"); } //Verify if logon user already has access token in db KuanMaiEntities db = new KuanMaiEntities(); Access_Token token = (from t in db.Access_Token where t.User_ID == user.ID && t.Mall_Type_ID == user.Type.ID select t).FirstOrDefault <Access_Token>(); if (token == null) { filterContext.HttpContext.Response.Redirect("/Home/Login?message=没有授权信息,请登录并授权"); } //Verify if the existed access token is expired long timeNow = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); if (timeNow >= token.Request_Time + token.Expirse_In) { filterContext.HttpContext.Response.Redirect("/Home/Login?message=授权信息已经过期,请重新登录并授权"); } }
public TaobaoTradeManager(Access_Token token, int mall_type_id) : base(mall_type_id, token) { }
public TaoBaoShopManager(Access_Token token, int mall_type_id) : base(mall_type_id, token) { }
public Access_Token RefreshToken(Access_Token oldToken) { throw new NotImplementedException(); }
public TaobaoProductManager(Access_Token token, int mall_type_id) : base(mall_type_id, token) { }
public PersonsRepository(Access_Token accessToken) : base(accessToken) { }
/// <summary> /// Calback from Mall Open API Authorization, it will verify if current login user has access to the system /// </summary> /// <param name="code">returns by Mall Open API Authorization</param> /// <returns></returns> public Access_Token AuthorizationCallBack(string code) { Access_Token request_token = null; BUser requester = new BUser(); //must get access token after mall authorization to identify user request_token = TokenManager.RequestAccessToken(code); if (request_token == null) { throw new KMJXCException("没有获取到Access token", ExceptionLevel.SYSTEM); } requester.Type = new BMallType() { ID = this.Mall_Type_ID }; requester.Mall_ID = request_token.Mall_User_ID; requester.Mall_Name = request_token.Mall_User_Name; requester.Parent_ID = 0; requester.Parent = null; KuanMaiEntities db = new KuanMaiEntities(); try { var db_user = from u in db.User where u.Mall_ID == requester.Mall_ID && u.Mall_Name == requester.Mall_Name && u.Mall_Type == this.Mall_Type_ID select new BUser { ID = u.User_ID, Name = u.Name, Mall_Name = u.Mall_Name, Mall_ID = u.Mall_ID, Password = u.Password, Parent_ID = (int)u.Parent_User_ID, }; List <BUser> users = db_user.ToList <BUser>(); //Create user in local db with mall owner id if (users.Count == 0) { this.InitializeMallManagers(request_token); if (this.ShopManager == null) { throw new KMJXCException("IShopManager 实例为null", ExceptionLevel.SYSTEM); } //check if current user's shop is ready in system Shop shop = this.ShopManager.GetShop(requester); if (shop == null) { BUser subUser = this.MallUserManager.GetSubUser(requester.Mall_ID, requester.Mall_Name); if (subUser == null) { throw new KMJXCException("用户:" + requester.Mall_Name + " 没有对应的" + ((KM.JXC.BL.Open.OBaseManager) this.ShopManager).MallType.Description + ",并且不属于任何店铺的子账户", ExceptionLevel.ERROR); } else { // if (subUser.Parent == null || string.IsNullOrEmpty(subUser.Parent.Mall_Name)) { throw new KMJXCException("用户:" + requester.Mall_Name + " 没有对应的" + ((KM.JXC.BL.Open.OBaseManager) this.ShopManager).MallType.Description + ",并且不属于任何店铺的子账户", ExceptionLevel.ERROR); } BUser mainUser = null; var u = from us in db.User where us.Mall_ID == subUser.Parent.Mall_ID && us.Mall_Type == requester.Type.ID && us.Mall_Name == subUser.Parent.Mall_Name select new BUser { ID = us.User_ID, Name = us.Name, Mall_Name = us.Mall_Name, Mall_ID = us.Mall_ID, Password = us.Password, Parent_ID = (int)us.Parent_User_ID, Type = new BMallType { ID = us.Mall_Type } }; if (u.ToList <BUser>().Count() == 1) { mainUser = u.ToList <BUser>()[0]; } if (mainUser == null) { throw new KMJXCException("主账户:" + subUser.Parent.Mall_Name + " 还没有初始化店铺信息,所有子账户无法登录系统", ExceptionLevel.ERROR); } requester.Parent_ID = mainUser.ID; requester.Parent = mainUser; requester.EmployeeInfo = subUser.EmployeeInfo; } } //create user in local db requester.Name = requester.Mall_Name; requester.Password = Guid.NewGuid().ToString(); User dbUser = new User(); dbUser.User_ID = requester.ID; dbUser.Mall_ID = requester.Mall_ID; dbUser.Mall_Name = requester.Mall_Name; dbUser.NickName = ""; dbUser.Name = requester.Name; dbUser.Mall_Type = requester.Type.ID; dbUser.Parent_Mall_ID = ""; dbUser.Parent_Mall_Name = ""; dbUser.Parent_User_ID = 0; dbUser.Password = ""; dbUser.Name = dbUser.Mall_Name; dbUser.Created = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); dbUser.Modified = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); dbUser.Modified_By = 0; if (requester.Parent != null) { dbUser.Parent_Mall_ID = requester.Parent.Mall_ID; dbUser.Parent_Mall_Name = requester.Parent.Mall_Name; dbUser.Parent_User_ID = requester.Parent.ID; } db.User.Add(dbUser); db.SaveChanges(); //create access token for the new user request_token.User_ID = dbUser.User_ID; requester.ID = dbUser.User_ID; db.Access_Token.Add(request_token); //save employee if (requester.Parent_ID > 0 && requester.EmployeeInfo != null) { requester.EmployeeInfo.User_ID = requester.ID; Employee employee = new Employee(); employee.Name = requester.EmployeeInfo.Name; employee.IdentityCard = requester.EmployeeInfo.IdentityCard; employee.MatureDate = requester.EmployeeInfo.MatureDate; employee.Phone = requester.EmployeeInfo.Phone; employee.User_ID = requester.EmployeeInfo.User_ID; employee.HireDate = requester.EmployeeInfo.HireDate; employee.Gendar = requester.EmployeeInfo.Gendar; employee.Duty = requester.EmployeeInfo.Duty; employee.Email = requester.EmployeeInfo.Email; employee.Department = requester.EmployeeInfo.Department; employee.BirthDate = requester.EmployeeInfo.BirthDate; employee.Address = requester.EmployeeInfo.Address; db.Employee.Add(employee); } if (shop != null) { //create local shop information for the new main user shop.User_ID = requester.ID; shop.Parent_Shop_ID = 0; shop.Created = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); shop.Synced = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); db.Shop.Add(shop); db.SaveChanges(); //save shop user Shop_User shop_User = new Shop_User(); shop_User.User_ID = requester.ID; shop_User.Shop_ID = shop.Shop_ID; db.Shop_User.Add(shop_User); //update dbuser dbUser.Shop_ID = shop.Shop_ID; db.SaveChanges(); //create default stock house Store_House shouse = new Store_House(); shouse.Shop_ID = shop.Shop_ID; shouse.Title = "默认仓库"; shouse.User_ID = requester.ID; shouse.Create_Time = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); db.Store_House.Add(shouse); db.SaveChanges(); } if (shop != null && requester.Parent_ID == 0) { //sync mall sub users to system //List<BUser> subUsers = this.MallUserManager.GetSubUsers(requester); //if (subUsers != null && subUsers.Count > 0 && shop.Shop_ID > 0) //{ // foreach (BUser user in subUsers) // { // User db1User = new User(); // db1User.Parent_Mall_ID = requester.Mall_ID; // db1User.Parent_Mall_Name = requester.Mall_Name; // db1User.Parent_User_ID = (int)requester.ID; // db1User.Mall_Name = user.Mall_Name; // db1User.Mall_ID = user.Mall_ID; // db1User.Mall_Type = user.Type.Mall_Type_ID; // db1User.Name = user.Name; // db1User.Password = ""; // db.User.Add(db1User); // db.SaveChanges(); // if (db1User.User_ID > 0) // { // //add shop user // Shop_User shop_User1 = new Shop_User(); // shop_User1.User_ID = requester.ID; // shop_User1.Shop_ID = shop.Shop_ID; // db.Shop_User.Add(shop_User1); // if (user.EmployeeInfo != null) // { // user.EmployeeInfo.User_ID = db1User.User_ID; // db.Employee.Add(user.EmployeeInfo); // //db.SaveChanges(); // } // } // } // db.SaveChanges(); //} } } else { //Verify if local db has non expried accesstoken requester = users[0]; Access_Token local_token = GetLocalToken(requester.ID, this.Mall_Type_ID); if (local_token != null) { long timeNow = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); //last access token is expried if (timeNow >= local_token.Expirse_In + local_token.Request_Time) { request_token = TokenManager.RequestAccessToken(code); request_token.User_ID = requester.ID; UpdateLocalAccessToken(request_token); } else { request_token = local_token; } } } } catch (DbEntityValidationException dbex) { throw new KMJXCException("登录失败,请联系管理员"); } catch (Exception ex) { throw new KMJXCException(ex.Message, ExceptionLevel.SYSTEM); } finally { if (db != null) { db.Dispose(); } } return(request_token); }
/// <summary> /// Initialize IManager instances /// </summary> /// <param name="token">Access token got from IAccessToken</param> private void InitializeMallManagers(Access_Token token) { this.ShopManager = new TaoBaoShopManager(token, this.Mall_Type_ID); this.MallUserManager = new TaoBaoUserManager(token, this.Mall_Type_ID); }
//Contstructor public BaseRepository(Access_Token accessToken) { _accessToken = accessToken; }