/// <summary> /// 退出登录,即删除token /// </summary> /// <param name="c"></param> /// <param name="tokentype"></param> /// <returns></returns> public static ActionResult LogOut(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { CertComm.ServerResult r = new CertComm.ServerResult(); JsonResult jsonresult = new JsonResult(); jsonresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; jsonresult.Data = r; string token = c.Request.Params["token"] ?? ""; if (string.IsNullOrEmpty(token)) { r.code = -905; r.msg = "token不能为空。"; return(jsonresult); } using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open(); DeleteToken(PubConn, token, tokentype); r.code = 1; r.msg = "退出成功。"; return(jsonresult); } }
public static ActionResult GetTokenInfo(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { CertComm.ServerResult sr = new CertComm.ServerResult(); JsonResult jsonresult = new JsonResult(); jsonresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; jsonresult.Data = sr; string token = c.Request.Params["token"]; if (string.IsNullOrEmpty(token)) { sr.code = -905; sr.msg = "token不能为空。"; return(jsonresult); } try { using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 CertCenter.Models.DbModels.tb_token Ttoken = CertCenter.Models.TokenDal.Instance.GetToken(PubConn, token, tokentype); if (Ttoken == null) { sr.code = -905; #warning 修改提示 sr.msg = "token不存在"; return(jsonresult); } if (Ttoken.expires.CompareTo(DateTime.Now) <= 0) { sr.code = -905; sr.msg = "token过期。"; return(jsonresult); } #region 修改名字,除去修改了用户名后不同步的bug using (XXF.Db.DbConn priconn = XXF.Db.DbConn.CreateConn(GetConnStr(tokentype, Ttoken.userid))) { Ttoken.username = CertCenter.Models.AccountDal.Instance.getUserName(priconn, Ttoken.userid, tokentype); } CertCenter.Models.TokenDal.Instance.Edit(PubConn, Ttoken, tokentype); #endregion sr.code = 1; sr.response = new { appid = Ttoken.appid, userid = Ttoken.userid, username = Ttoken.username, token = Ttoken.token, createtime = Ttoken.createtime.ToString("yyyy-MM-dd HH:mm:ss"), expires = Ttoken.expires.ToString("yyyy-MM-dd HH:mm:ss"), id = Ttoken.id }; return(jsonresult); } } catch (Exception ex) { sr.code = -1; sr.msg = ex.Message; return(jsonresult); } }
public static ActionResult RefreshToken(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { CertComm.ServerResult r = new CertComm.ServerResult(); JsonResult jsonresult = new JsonResult(); jsonresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; jsonresult.Data = r; string token = c.Request.Params["token"] ?? ""; if (string.IsNullOrEmpty(token)) { r.code = -905; r.msg = "token不能为空。"; return(jsonresult); } try { using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 CertCenter.Models.DbModels.tb_token Ttoken = RefreshToken(PubConn, token, "", tokentype); if (Ttoken == null) { r.code = -101; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return(jsonresult); } #region 修改名字,除去修改了用户名后不同步的bug using (XXF.Db.DbConn priconn = XXF.Db.DbConn.CreateConn(GetConnStr(tokentype, Ttoken.userid))) { Ttoken.username = CertCenter.Models.AccountDal.Instance.getUserName(priconn, Ttoken.userid, tokentype); } CertCenter.Models.TokenDal.Instance.Edit(PubConn, Ttoken, tokentype); #endregion r.code = 1; r.response = Ttoken; return(jsonresult); } } catch (Exception ex) { throw ex; } }
public ActionResult GetAppSecret(Controller controller) { JsonResult jsonr = new JsonResult(); jsonr.JsonRequestBehavior = JsonRequestBehavior.AllowGet; CertComm.ServerResult r = new CertComm.ServerResult(); jsonr.Data = r; string appid = controller.Request["appid"]; if (string.IsNullOrEmpty(appid)) { r.code = -3; r.msg = "请求参数appid不能为空"; return(jsonr); } using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 bool ex = CertCenter.Models.AppDal.Instance.ExitAppid(PubConn, appid); if (!ex) { r.code = -1; r.msg = "appid不存在"; return(jsonr); } CertCenter.Models.DbModels.app app = CertCenter.Models.AppDal.Instance.GetAppInfo(PubConn, appid); if (app == null) { r.code = -1; r.msg = "appid不存在"; return(jsonr); } else { r.code = 1; r.msg = "OK"; r.response = app.appsecret; return(jsonr); } } return(jsonr); }
public ActionResult GetAppSecret(Controller controller) { JsonResult jsonr = new JsonResult(); jsonr.JsonRequestBehavior = JsonRequestBehavior.AllowGet; CertComm.ServerResult r = new CertComm.ServerResult(); jsonr.Data = r; string appid = controller.Request["appid"]; if (string.IsNullOrEmpty(appid)) { r.code = -3; r.msg = "请求参数appid不能为空"; return jsonr; } using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 bool ex = CertCenter.Models.AppDal.Instance.ExitAppid(PubConn, appid); if (!ex) { r.code = -1; r.msg = "appid不存在"; return jsonr; } CertCenter.Models.DbModels.app app = CertCenter.Models.AppDal.Instance.GetAppInfo(PubConn, appid); if (app == null) { r.code = -1; r.msg = "appid不存在"; return jsonr; } else { r.code = 1; r.msg = "OK"; r.response = app.appsecret; return jsonr; } } return jsonr; }
public static ActionResult TestAuth(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { JsonResult jsonresult = new JsonResult(); jsonresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; CertComm.ServerResult r = new CertComm.ServerResult(); jsonresult.Data = r; string token = c.Request.Params["token"]; string _controller = c.Request.Params["controller"]; string _area = c.Request.Params["area"]; string _action = c.Request.Params["action"]; string _apiname = c.Request.Params["apiname"]; int _apiid = 0; int.TryParse(c.Request.Params["apiid"] ?? "", out _apiid); if (string.IsNullOrEmpty(token)) { r.code = -905; r.msg = "token不能为空。"; return jsonresult; } using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 #region token CertCenter.Models.DbModels.tb_token Ttoken = CertCenter.Models.TokenDal.Instance.GetToken(PubConn, token, tokentype); if (Ttoken == null || Ttoken.expires.CompareTo(DateTime.Now) < 0) { DeleteToken(PubConn, token, tokentype); r.code = -101; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return jsonresult; } #endregion //#region user //#endregion #region //应用 CertCenter.Models.DbModels.app appitem = CertCenter.Models.AppDal.Instance.GetAppInfo(PubConn, Ttoken.appid); if (appitem == null) { r.code = -103; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return jsonresult; } else if (appitem.freeze == 1) { r.code = -107; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return jsonresult; } #endregion #region 接口 int apptype = TokenTypeGetAppType(tokentype); CertCenter.Models.DbModels.api apiinfo = null; if (_apiid > 0) { apiinfo = CertCenter.Models.ApiDal.Instance.Get(PubConn, _apiid); } else if (!string.IsNullOrEmpty(_apiname)) { apiinfo = CertCenter.Models.ApiDal.Instance.Get(PubConn, _apiname, apptype); } else { apiinfo = CertCenter.Models.ApiDal.Instance.Get(PubConn, _area, _controller, _action, apptype); } if (apiinfo == null) { r.code = -108; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return jsonresult; } if (apiinfo.freeze == 1) { r.code = -106; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return jsonresult; } if (appitem.appgradeno < appitem.appgradeno || apptype != apiinfo.apptype) { r.code = -105; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return jsonresult; } #endregion r.code = 1; r.response = new { appid = Ttoken.appid, userid = Ttoken.userid, username = Ttoken.username, token = Ttoken.token, createtime = Ttoken.createtime.ToString("yyyy-MM-dd HH:mm:ss"), expires = Ttoken.expires.ToString("yyyy-MM-dd HH:mm:ss") }; return jsonresult; } }
public static ActionResult RefreshToken(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { CertComm.ServerResult r = new CertComm.ServerResult(); JsonResult jsonresult = new JsonResult(); jsonresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; jsonresult.Data = r; string token = c.Request.Params["token"] ?? ""; if (string.IsNullOrEmpty(token)) { r.code = -905; r.msg = "token不能为空。"; return jsonresult; } try { using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 CertCenter.Models.DbModels.tb_token Ttoken = RefreshToken(PubConn, token, "", tokentype); if (Ttoken == null) { r.code = -101; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return jsonresult; } #region 修改名字,除去修改了用户名后不同步的bug using (XXF.Db.DbConn priconn = XXF.Db.DbConn.CreateConn(GetConnStr(tokentype, Ttoken.userid))) { Ttoken.username = CertCenter.Models.AccountDal.Instance.getUserName(priconn, Ttoken.userid, tokentype); } CertCenter.Models.TokenDal.Instance.Edit(PubConn, Ttoken, tokentype); #endregion r.code = 1; r.response = Ttoken; return jsonresult; } } catch (Exception ex) { throw ex; } }
/// <summary> /// 退出登录,即删除token /// </summary> /// <param name="c"></param> /// <param name="tokentype"></param> /// <returns></returns> public static ActionResult LogOut(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { CertComm.ServerResult r = new CertComm.ServerResult(); JsonResult jsonresult = new JsonResult(); jsonresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; jsonresult.Data = r; string token = c.Request.Params["token"] ?? ""; if (string.IsNullOrEmpty(token)) { r.code = -905; r.msg = "token不能为空。"; return jsonresult; } using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open(); DeleteToken(PubConn, token, tokentype); r.code = 1; r.msg = "退出成功。"; return jsonresult; } }
public static ActionResult GetTokenInfo(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { CertComm.ServerResult sr = new CertComm.ServerResult(); JsonResult jsonresult = new JsonResult(); jsonresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; jsonresult.Data = sr; string token = c.Request.Params["token"]; if (string.IsNullOrEmpty(token)) { sr.code = -905; sr.msg = "token不能为空。"; return jsonresult; } try { using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 CertCenter.Models.DbModels.tb_token Ttoken = CertCenter.Models.TokenDal.Instance.GetToken(PubConn, token, tokentype); if (Ttoken == null) { sr.code = -905; #warning 修改提示 sr.msg = "token不存在"; return jsonresult; } if (Ttoken.expires.CompareTo(DateTime.Now) <= 0) { sr.code = -905; sr.msg = "token过期。"; return jsonresult; } #region 修改名字,除去修改了用户名后不同步的bug using (XXF.Db.DbConn priconn = XXF.Db.DbConn.CreateConn(GetConnStr(tokentype, Ttoken.userid))) { Ttoken.username = CertCenter.Models.AccountDal.Instance.getUserName(priconn, Ttoken.userid, tokentype); } CertCenter.Models.TokenDal.Instance.Edit(PubConn, Ttoken, tokentype); #endregion sr.code = 1; sr.response = new { appid = Ttoken.appid, userid = Ttoken.userid, username = Ttoken.username, token = Ttoken.token, createtime = Ttoken.createtime.ToString("yyyy-MM-dd HH:mm:ss"), expires = Ttoken.expires.ToString("yyyy-MM-dd HH:mm:ss"), id = Ttoken.id }; return jsonresult; } } catch (Exception ex) { sr.code = -1; sr.msg = ex.Message; return jsonresult; } }
public static ActionResult GetApiList(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { JsonResult jsonresult = new JsonResult(); jsonresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; CertComm.ServerResult r = new CertComm.ServerResult(); jsonresult.Data = r; string token = c.Request.Params["token"]; if (string.IsNullOrEmpty(token)) { r.code = -905; r.msg = "token不能为空。"; return jsonresult; } using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 #region token CertCenter.Models.DbModels.tb_token Token = CertCenter.Models.TokenDal.Instance.GetToken(PubConn, token, tokentype); if (Token == null || Token.expires.CompareTo(DateTime.Now) < 0) { DeleteToken(PubConn, token, tokentype); r.code = -101; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return jsonresult; } #endregion List<CertCenter.Models.DbModels.api> apis = new List<CertCenter.Models.DbModels.api>(); CertCenter.Models.DbModels.app appinfo = CertCenter.Models.AppDal.Instance.GetAppInfo(PubConn, Token.appid); if (appinfo == null) { DeleteToken(PubConn, token, tokentype); r.code = -103; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return jsonresult; } int apptype = 0; switch (tokentype) { case CertCenter.Models.DbModels.TokenType.managetoken: apptype = 0; break; case CertCenter.Models.DbModels.TokenType.shoptoken: apptype = 2; break; case CertCenter.Models.DbModels.TokenType.usertoken: apptype = 1; break; } for (int i = appinfo.appgradeno; i > 0; i--) { apis.AddRange(CertCenter.Models.ApiDal.Instance.GetGradeApis(PubConn, apptype, i)); } r.code = 1; r.response = apis; return jsonresult; } }
public static ActionResult GetToken(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { JsonResult jsonr = new JsonResult(); jsonr.JsonRequestBehavior = JsonRequestBehavior.AllowGet; CertComm.ServerResult sr = new CertComm.ServerResult(); string msg = ""; jsonr.Data = sr; //sr.code = 1; //sr.response = new CertCenter.Models.DbModels.tb_token() //{ // appid = "abc", // token = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", // userid = "ad", // id = "", // username = "******" //}; //return jsonr; Dictionary<string, string> para = CertCenter.Models.CertCenterComm.GetRequestPara(c, new string[] { "appid", "userid", "timespan", "sign", "pwd" }); sr.code = CertCenter.Models.CertCenterComm.ValiFields(para, out msg); if (sr.code < 0) { sr.msg = msg; return jsonr; } string userid = para["userid"]; string appid = para["appid"]; string pwd = para["pwd"]; string sign = para["sign"]; string timespan = para["timespan"]; if (!CertComm.Authcomm.TestTimeSpanOk(timespan, 10 * 60)) { sr.code = -102; sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return jsonr; } using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 CertCenter.Models.DbModels.app appitem = CertCenter.Models.AppDal.Instance.GetAppInfo(PubConn, appid); if (appitem == null || TokenTypeGetAppType(tokentype) != appitem.apptype) { sr.code = -103; sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return jsonr; } else if (appitem.freeze == 1) { sr.code = -107; sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return jsonr; } string nowsign = CertComm.Authcomm.ToSign(para, appitem.appsecret); if (nowsign.ToLower() != para["sign"].ToLower()) { sr.code = -104; sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return jsonr; } string bsconstr = GetConnStr(tokentype, userid); if (string.IsNullOrEmpty(bsconstr)) { sr.code = -112; sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return jsonr; } string username = ""; string identityid = ""; using (XXF.Db.DbConn dydpubConn = XXF.Db.DbConfig.CreateConn(XXF.Db.DbType.SQLSERVER, bsconstr)) { dydpubConn.Open(); ////用户相关验证 switch (tokentype) { case CertCenter.Models.DbModels.TokenType.managetoken: sr.code = ManageAccountVali(dydpubConn, userid, pwd, out username, out identityid); break; case CertCenter.Models.DbModels.TokenType.shoptoken: string tt = ""; sr.code = ShopAccountVali(dydpubConn, userid, pwd, out username, out tt, out identityid); userid = tt; break; case CertCenter.Models.DbModels.TokenType.usertoken: sr.code = UserAccountVali(dydpubConn, userid, pwd, out username, out identityid); break; default: break; } } if (sr.code < 0) { sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return jsonr; } CertCenter.Models.DbModels.tb_token Ttoken = CertCenter.Models.TokenDal.Instance.GetToken(PubConn, userid, appid, tokentype); if (Ttoken == null || Ttoken.expires.CompareTo(DateTime.Now) < 0) { if (Ttoken != null) { DeleteToken(PubConn, Ttoken.token, tokentype); } Ttoken = new CertCenter.Models.DbModels.tb_token(); Ttoken.appid = appid; Ttoken.token = Guid.NewGuid().ToString().Replace("-", ""); Ttoken.userid = userid; Ttoken.id = identityid; Ttoken.username = username; CertCenter.Models.TokenDal.Instance.Add(PubConn, Ttoken, tokentype); } else { Ttoken = RefreshToken(PubConn, Ttoken.token, username, tokentype); } sr.code = 1; sr.response = new { appid = Ttoken.appid, userid = Ttoken.userid, username = Ttoken.username, token = Ttoken.token, createtime = Ttoken.createtime.ToString("yyyy-MM-dd HH:mm:ss"), expires = Ttoken.expires.ToString("yyyy-MM-dd HH:mm:ss"), id = Ttoken.id }; return jsonr; } }
public static ActionResult Visit(Func<ActionResult> action, Controller c) { var mapapi = ApiInvokeMap.MapCore.GetInstance(); mapapi.Increase(ConbineUrl( XXF.Db.LibConvert.NullToStr(c.ControllerContext.RouteData.Values["area"]).ToString().ToLower(), c.ControllerContext.RouteData.Values["controller"].ToString().ToLower(), c.ControllerContext.RouteData.Values["action"].ToString().ToLower())); //XXF.Log.TimeWatchLog twl = new XXF.Log.TimeWatchLog(); try { var r = action(); //twl.Write(c.Request.Url.ToString()); return r; } catch (Exception ex) { System.IO.File.AppendAllText(c.Server.MapPath("~/error.log"), DateTime.Now.ToString() + "\r\n\tURL:" + c.Request.Url.ToString() + "\r\n\tFormData:" + System.Web.HttpUtility.UrlDecode(c.Request.Form.ToString()) + "\r\n\tException:" + ex.Message + "\r\n" + ex.StackTrace + "\r\n\t"); JsonResult sresult = new JsonResult(); CertComm.ServerResult r = new CertComm.ServerResult(); r.code = -100; r.msg = "系统正忙或服务器内部错误,请重试。"; sresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; sresult.Data = r; return sresult; } #region old //System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); //sw.Start(); //Task<ActionResult> t = new Task<ActionResult>(action); //#region 成功 //t.ContinueWith((x) => //{ // try // { // System.IO.File.AppendAllText(c.Server.MapPath("~/ope" + DateTime.Now.ToString("yyMMdd") + ".log"), DateTime.Now.ToString() + " TIME:" + sw.Elapsed.TotalMinutes + " \r\n\tFormData:" + System.Web.HttpUtility.UrlDecode(c.Request.Form.ToString()) + "\r\n\tURL:" + c.Request.Url.ToString() + "\r\n"); // } // catch (Exception ex) { } //}, TaskContinuationOptions.OnlyOnRanToCompletion); //#endregion //try //{ // t.Start(); // if (t.Wait(TimeSpan.FromSeconds(30))) // { // ActionResult actresult = t.Result; // return actresult; // } // throw new Exception("[task time out]"); //} //catch (Exception ex) //{ // Task.Factory.StartNew(() => // { // System.IO.File.AppendAllText(c.Server.MapPath("~/error.log"), DateTime.Now.ToString() + "\r\n\tURL:" + c.Request.Url.ToString() + "\r\n\tFormData:" + System.Web.HttpUtility.UrlDecode(c.Request.Form.ToString()) + "\r\n\tException:" + ex.Message + "\r\n" + ex.StackTrace + "\r\n\t"); // }); // JsonResult sresult = new JsonResult(); // CertComm.ServerResult r = new CertComm.ServerResult(); // r.code = -100; // r.msg = "系统正忙或服务器内部错误,请重试。"; // sresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; // sresult.Data = r; // return sresult; //} #endregion }
public static ActionResult GetApiList(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { JsonResult jsonresult = new JsonResult(); jsonresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; CertComm.ServerResult r = new CertComm.ServerResult(); jsonresult.Data = r; string token = c.Request.Params["token"]; if (string.IsNullOrEmpty(token)) { r.code = -905; r.msg = "token不能为空。"; return(jsonresult); } using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 #region token CertCenter.Models.DbModels.tb_token Token = CertCenter.Models.TokenDal.Instance.GetToken(PubConn, token, tokentype); if (Token == null || Token.expires.CompareTo(DateTime.Now) < 0) { DeleteToken(PubConn, token, tokentype); r.code = -101; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return(jsonresult); } #endregion List <CertCenter.Models.DbModels.api> apis = new List <CertCenter.Models.DbModels.api>(); CertCenter.Models.DbModels.app appinfo = CertCenter.Models.AppDal.Instance.GetAppInfo(PubConn, Token.appid); if (appinfo == null) { DeleteToken(PubConn, token, tokentype); r.code = -103; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return(jsonresult); } int apptype = 0; switch (tokentype) { case CertCenter.Models.DbModels.TokenType.managetoken: apptype = 0; break; case CertCenter.Models.DbModels.TokenType.shoptoken: apptype = 2; break; case CertCenter.Models.DbModels.TokenType.usertoken: apptype = 1; break; } for (int i = appinfo.appgradeno; i > 0; i--) { apis.AddRange(CertCenter.Models.ApiDal.Instance.GetGradeApis(PubConn, apptype, i)); } r.code = 1; r.response = apis; return(jsonresult); } }
public static ActionResult TestAuth(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { JsonResult jsonresult = new JsonResult(); jsonresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; CertComm.ServerResult r = new CertComm.ServerResult(); jsonresult.Data = r; string token = c.Request.Params["token"]; string _controller = c.Request.Params["controller"]; string _area = c.Request.Params["area"]; string _action = c.Request.Params["action"]; string _apiname = c.Request.Params["apiname"]; int _apiid = 0; int.TryParse(c.Request.Params["apiid"] ?? "", out _apiid); if (string.IsNullOrEmpty(token)) { r.code = -905; r.msg = "token不能为空。"; return(jsonresult); } using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 #region token CertCenter.Models.DbModels.tb_token Ttoken = CertCenter.Models.TokenDal.Instance.GetToken(PubConn, token, tokentype); if (Ttoken == null || Ttoken.expires.CompareTo(DateTime.Now) < 0) { DeleteToken(PubConn, token, tokentype); r.code = -101; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return(jsonresult); } #endregion //#region user //#endregion #region //应用 CertCenter.Models.DbModels.app appitem = CertCenter.Models.AppDal.Instance.GetAppInfo(PubConn, Ttoken.appid); if (appitem == null) { r.code = -103; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return(jsonresult); } else if (appitem.freeze == 1) { r.code = -107; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return(jsonresult); } #endregion #region 接口 int apptype = TokenTypeGetAppType(tokentype); CertCenter.Models.DbModels.api apiinfo = null; if (_apiid > 0) { apiinfo = CertCenter.Models.ApiDal.Instance.Get(PubConn, _apiid); } else if (!string.IsNullOrEmpty(_apiname)) { apiinfo = CertCenter.Models.ApiDal.Instance.Get(PubConn, _apiname, apptype); } else { apiinfo = CertCenter.Models.ApiDal.Instance.Get(PubConn, _area, _controller, _action, apptype); } if (apiinfo == null) { r.code = -108; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return(jsonresult); } if (apiinfo.freeze == 1) { r.code = -106; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return(jsonresult); } if (appitem.appgradeno < appitem.appgradeno || apptype != apiinfo.apptype) { r.code = -105; r.msg = CertCenter.Models.AUTH_CODE_MSG.Get(r.code); return(jsonresult); } #endregion r.code = 1; r.response = new { appid = Ttoken.appid, userid = Ttoken.userid, username = Ttoken.username, token = Ttoken.token, createtime = Ttoken.createtime.ToString("yyyy-MM-dd HH:mm:ss"), expires = Ttoken.expires.ToString("yyyy-MM-dd HH:mm:ss") }; return(jsonresult); } }
public static ActionResult GetToken(Controller c, CertCenter.Models.DbModels.TokenType tokentype) { JsonResult jsonr = new JsonResult(); jsonr.JsonRequestBehavior = JsonRequestBehavior.AllowGet; CertComm.ServerResult sr = new CertComm.ServerResult(); string msg = ""; jsonr.Data = sr; //sr.code = 1; //sr.response = new CertCenter.Models.DbModels.tb_token() //{ // appid = "abc", // token = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", // userid = "ad", // id = "", // username = "******" //}; //return jsonr; Dictionary <string, string> para = CertCenter.Models.CertCenterComm.GetRequestPara(c, new string[] { "appid", "userid", "timespan", "sign", "pwd" }); sr.code = CertCenter.Models.CertCenterComm.ValiFields(para, out msg); if (sr.code < 0) { sr.msg = msg; return(jsonr); } string userid = para["userid"]; string appid = para["appid"]; string pwd = para["pwd"]; string sign = para["sign"]; string timespan = para["timespan"]; if (!CertComm.Authcomm.TestTimeSpanOk(timespan, 10 * 60)) { sr.code = -102; sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return(jsonr); } using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open();//打开基本 CertCenter.Models.DbModels.app appitem = CertCenter.Models.AppDal.Instance.GetAppInfo(PubConn, appid); if (appitem == null || TokenTypeGetAppType(tokentype) != appitem.apptype) { sr.code = -103; sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return(jsonr); } else if (appitem.freeze == 1) { sr.code = -107; sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return(jsonr); } string nowsign = CertComm.Authcomm.ToSign(para, appitem.appsecret); if (nowsign.ToLower() != para["sign"].ToLower()) { sr.code = -104; sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return(jsonr); } string bsconstr = GetConnStr(tokentype, userid); if (string.IsNullOrEmpty(bsconstr)) { sr.code = -112; sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return(jsonr); } string username = ""; string identityid = ""; using (XXF.Db.DbConn dydpubConn = XXF.Db.DbConfig.CreateConn(XXF.Db.DbType.SQLSERVER, bsconstr)) { dydpubConn.Open(); ////用户相关验证 switch (tokentype) { case CertCenter.Models.DbModels.TokenType.managetoken: sr.code = ManageAccountVali(dydpubConn, userid, pwd, out username, out identityid); break; case CertCenter.Models.DbModels.TokenType.shoptoken: string tt = ""; sr.code = ShopAccountVali(dydpubConn, userid, pwd, out username, out tt, out identityid); userid = tt; break; case CertCenter.Models.DbModels.TokenType.usertoken: sr.code = UserAccountVali(dydpubConn, userid, pwd, out username, out identityid); break; default: break; } } if (sr.code < 0) { sr.msg = CertCenter.Models.AUTH_CODE_MSG.Get(sr.code); return(jsonr); } CertCenter.Models.DbModels.tb_token Ttoken = CertCenter.Models.TokenDal.Instance.GetToken(PubConn, userid, appid, tokentype); if (Ttoken == null || Ttoken.expires.CompareTo(DateTime.Now) < 0) { if (Ttoken != null) { DeleteToken(PubConn, Ttoken.token, tokentype); } Ttoken = new CertCenter.Models.DbModels.tb_token(); Ttoken.appid = appid; Ttoken.token = Guid.NewGuid().ToString().Replace("-", ""); Ttoken.userid = userid; Ttoken.id = identityid; Ttoken.username = username; CertCenter.Models.TokenDal.Instance.Add(PubConn, Ttoken, tokentype); } else { Ttoken = RefreshToken(PubConn, Ttoken.token, username, tokentype); } sr.code = 1; sr.response = new { appid = Ttoken.appid, userid = Ttoken.userid, username = Ttoken.username, token = Ttoken.token, createtime = Ttoken.createtime.ToString("yyyy-MM-dd HH:mm:ss"), expires = Ttoken.expires.ToString("yyyy-MM-dd HH:mm:ss"), id = Ttoken.id }; return(jsonr); } }
public static JsonResult Visit(Func <XXF.Db.DbConn, object> action, Controller controller) { //msgs.Add(-100, "认证失败"); //msgs.Add(-905, "token不存在或已过期"); //msgs.Add(-102, "请求超时"); //msgs.Add(-103, " sign不正确"); //msgs.Add(-104, "无权操作该接口"); //msgs.Add(-105, "接口已被冻结"); //msgs.Add(-106, "应用被冻结"); //msgs.Add(-111, "参数不完整"); //msgs.Add(-112, "用户不存在"); //msgs.Add(-113, "pwd不正确"); //msgs.Add(-114, "用户被冻结"); CertComm.ServerResult sr = new CertComm.ServerResult(); Dictionary <string, string> para = GetRequestPara(controller); if (para.ContainsKey("appid") && string.IsNullOrEmpty(para["appid"])) { sr.code = -111; sr.msg = "appid不能为空"; } else if (para.ContainsKey("timespan") && string.IsNullOrEmpty(para["timespan"])) { sr.code = -111; sr.msg = "timespan不能为空"; } else if (para.ContainsKey("sign") && string.IsNullOrEmpty(para["sign"])) { sr.code = -111; sr.msg = "sign不能为空"; } else if (para.ContainsKey("userid") && string.IsNullOrEmpty(para["userid"])) { sr.code = -111; sr.msg = "userid不能为空"; } else if (para.ContainsKey("pwd") && string.IsNullOrEmpty(para["pwd"])) { sr.code = -111; sr.msg = "pwd不能为空"; } else { if (!CertComm.Authcomm.TestTimeSpanOk(para["timespan"], 10 * 60)) { sr.code = -102; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else { using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open(); Models.DbModels.app appitem = Models.AppDal.Instance.GetAppInfo(PubConn, para["appid"]); if (appitem == null) { sr.code = -103; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else if (appitem.freeze == 1) { sr.code = -107; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else { string nowsign = CertComm.Authcomm.ToSign(para, appitem.appsecret); if (nowsign.ToLower() != para["sign"].ToLower()) { sr.code = -104; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else//用户相关验证 { Models.DbModels.manage manager = Models.AccountDal.Instance.getManage(PubConn, para["userid"]); if (manager == null) { sr.code = -112; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else if (manager.freeze == 1) { sr.code = -114; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else if (CertComm.Authcomm.ToMD5String(manager.pwd) != para["pwd"]) { sr.code = -113; sr.msg = AUTH_CODE_MSG.Get(sr.code); } } } } } } if (sr.code < -100) { return(new JsonResult() { Data = sr }); } return(null); }
public static JsonResult Visit(Func<XXF.Db.DbConn, object> action, Controller controller) { //msgs.Add(-100, "认证失败"); //msgs.Add(-905, "token不存在或已过期"); //msgs.Add(-102, "请求超时"); //msgs.Add(-103, " sign不正确"); //msgs.Add(-104, "无权操作该接口"); //msgs.Add(-105, "接口已被冻结"); //msgs.Add(-106, "应用被冻结"); //msgs.Add(-111, "参数不完整"); //msgs.Add(-112, "用户不存在"); //msgs.Add(-113, "pwd不正确"); //msgs.Add(-114, "用户被冻结"); CertComm.ServerResult sr = new CertComm.ServerResult(); Dictionary<string, string> para = GetRequestPara(controller); if (para.ContainsKey("appid") && string.IsNullOrEmpty(para["appid"])) { sr.code = -111; sr.msg = "appid不能为空"; } else if (para.ContainsKey("timespan") && string.IsNullOrEmpty(para["timespan"])) { sr.code = -111; sr.msg = "timespan不能为空"; } else if (para.ContainsKey("sign") && string.IsNullOrEmpty(para["sign"])) { sr.code = -111; sr.msg = "sign不能为空"; } else if (para.ContainsKey("userid") && string.IsNullOrEmpty(para["userid"])) { sr.code = -111; sr.msg = "userid不能为空"; } else if (para.ContainsKey("pwd") && string.IsNullOrEmpty(para["pwd"])) { sr.code = -111; sr.msg = "pwd不能为空"; } else { if (!CertComm.Authcomm.TestTimeSpanOk(para["timespan"], 10 * 60)) { sr.code = -102; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else { using (XXF.Db.DbConn PubConn = XXF.Db.DbConfig.CreateConn()) { PubConn.Open(); Models.DbModels.app appitem = Models.AppDal.Instance.GetAppInfo(PubConn, para["appid"]); if (appitem == null) { sr.code = -103; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else if (appitem.freeze == 1) { sr.code = -107; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else { string nowsign = CertComm.Authcomm.ToSign(para, appitem.appsecret); if (nowsign.ToLower() != para["sign"].ToLower()) { sr.code = -104; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else//用户相关验证 { Models.DbModels.manage manager = Models.AccountDal.Instance.getManage(PubConn, para["userid"]); if (manager == null) { sr.code = -112; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else if (manager.freeze == 1) { sr.code = -114; sr.msg = AUTH_CODE_MSG.Get(sr.code); } else if (CertComm.Authcomm.ToMD5String(manager.pwd) != para["pwd"]) { sr.code = -113; sr.msg = AUTH_CODE_MSG.Get(sr.code); } } } } } } if (sr.code < -100) { return new JsonResult() { Data = sr }; } return null; }
public static ActionResult Visit(Func <ActionResult> action, Controller c) { var mapapi = ApiInvokeMap.MapCore.GetInstance(); mapapi.Increase(ConbineUrl( XXF.Db.LibConvert.NullToStr(c.ControllerContext.RouteData.Values["area"]).ToString().ToLower(), c.ControllerContext.RouteData.Values["controller"].ToString().ToLower(), c.ControllerContext.RouteData.Values["action"].ToString().ToLower())); //XXF.Log.TimeWatchLog twl = new XXF.Log.TimeWatchLog(); try { var r = action(); //twl.Write(c.Request.Url.ToString()); return(r); } catch (Exception ex) { System.IO.File.AppendAllText(c.Server.MapPath("~/error.log"), DateTime.Now.ToString() + "\r\n\tURL:" + c.Request.Url.ToString() + "\r\n\tFormData:" + System.Web.HttpUtility.UrlDecode(c.Request.Form.ToString()) + "\r\n\tException:" + ex.Message + "\r\n" + ex.StackTrace + "\r\n\t"); JsonResult sresult = new JsonResult(); CertComm.ServerResult r = new CertComm.ServerResult(); r.code = -100; r.msg = "系统正忙或服务器内部错误,请重试。"; sresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; sresult.Data = r; return(sresult); } #region old //System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); //sw.Start(); //Task<ActionResult> t = new Task<ActionResult>(action); //#region 成功 //t.ContinueWith((x) => //{ // try // { // System.IO.File.AppendAllText(c.Server.MapPath("~/ope" + DateTime.Now.ToString("yyMMdd") + ".log"), DateTime.Now.ToString() + " TIME:" + sw.Elapsed.TotalMinutes + " \r\n\tFormData:" + System.Web.HttpUtility.UrlDecode(c.Request.Form.ToString()) + "\r\n\tURL:" + c.Request.Url.ToString() + "\r\n"); // } // catch (Exception ex) { } //}, TaskContinuationOptions.OnlyOnRanToCompletion); //#endregion //try //{ // t.Start(); // if (t.Wait(TimeSpan.FromSeconds(30))) // { // ActionResult actresult = t.Result; // return actresult; // } // throw new Exception("[task time out]"); //} //catch (Exception ex) //{ // Task.Factory.StartNew(() => // { // System.IO.File.AppendAllText(c.Server.MapPath("~/error.log"), DateTime.Now.ToString() + "\r\n\tURL:" + c.Request.Url.ToString() + "\r\n\tFormData:" + System.Web.HttpUtility.UrlDecode(c.Request.Form.ToString()) + "\r\n\tException:" + ex.Message + "\r\n" + ex.StackTrace + "\r\n\t"); // }); // JsonResult sresult = new JsonResult(); // CertComm.ServerResult r = new CertComm.ServerResult(); // r.code = -100; // r.msg = "系统正忙或服务器内部错误,请重试。"; // sresult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; // sresult.Data = r; // return sresult; //} #endregion }