public ActionResult Auth(AuthModel model) { if (ModelState.IsValid) { if (model.RememberMe) { Response.Cookies.Add(new HttpCookie("top_appkey", model.AppKey)); Response.Cookies.Add(new HttpCookie("top_appsecret", model.AppSecret)); Response.Cookies.Add(new HttpCookie("top_rememberme", model.RememberMe.ToString(CultureInfo.InvariantCulture))); } var tc = new TopConfigs { AppKey = model.AppKey, AppSecret = model.AppSecret }; var authUrl = TopCore.TopUtility.AuthUrl(model.AppKey); Response.Redirect(authUrl); } else { var appkey = Request.Cookies.Get("top_appkey") != null ? Request.Cookies.Get("top_appkey").Value : ""; var appsecret = Request.Cookies.Get("top_appsecret") != null ? Request.Cookies.Get("top_appsecret").Value : ""; var rememberme = Request.Cookies.Get("top_rememberme") != null ? Request.Cookies.Get("top_rememberme").Value : ""; if (!string.IsNullOrEmpty(appkey) && !string.IsNullOrEmpty(appsecret) && !string.IsNullOrEmpty(rememberme)) { var remembermeBool = Boolean.Parse(rememberme); ViewBag.AuthModel = new AuthModel { AppKey = appkey, AppSecret = appsecret, RememberMe = remembermeBool }; } } if (ViewBag.AuthModel == null) { ViewBag.AuthModel = new AuthModel { AppKey = "", AppSecret = "", RememberMe = false }; } return View(ViewBag.AuthModel); }
public BaseController() { var userName = "******"; var tc = new TopConfigs(); if (string.IsNullOrWhiteSpace(tc.SessionKey)) { using (var sqlDb = new SqliteHelper()) { const string queryTxt = @"select * from users where U_Name=@U_Name"; var userInfo = sqlDb.ExecuteList(queryTxt, new[] { new SQLiteParameter("@U_Name",userName) }); if (userInfo != null && userInfo.Count > 0) { var dr = userInfo[0]; tc.AppKey = dr["U_Top_AppKey"].ToString(); tc.AppSecret = dr["U_Top_AppSecret"].ToString(); tc.SessionKey = dr["U_Top_SessionKey"].ToString(); tc.TopCallBackData = HttpUtility.ParseQueryString(dr["U_Top_CallbackData"].ToString()); } } } }
/// <summary> /// 处理 授权 回调 /// </summary> public static bool AuthCallBack(bool isRedirect) { var result = false; var httpContext = HttpContext.Current; if (httpContext != null) { var urlParams = httpContext.Request.QueryString; var encoding = Encoding.UTF8; var topParameters = encoding.GetString(Convert.FromBase64String(urlParams.Get("top_parameters") ?? "")); var topParams = HttpUtility.ParseQueryString(topParameters); var tc = new TopConfigs { SessionKey = urlParams.Get("top_session"), TopCallBackData = urlParams, TopCallBackParams = topParams, RefreshToken = topParams.Get("refresh_token") }; #region 更新数据库 #region 原生方法 using (var dbHelper = new SqliteHelper()) { var queryTxt = "select * from users where u_top_appkey=@appkey"; var sqlParameters = new[] { new SQLiteParameter("@appkey", tc.AppKey) }; var topInfo = dbHelper.ExecuteList(queryTxt, sqlParameters); if (topInfo != null && topInfo.Count > 0) { queryTxt = "update users set U_Top_SessionKey=@SessionKey,U_LastUpdateTime=@LastupdateTime,U_Top_CallbackData=@U_Top_CallbackData where u_top_appkey=@appkey"; sqlParameters = new[] { new SQLiteParameter("@appkey", tc.AppKey), new SQLiteParameter("@SessionKey", tc.SessionKey), new SQLiteParameter("@U_Top_CallbackData", tc.TopCallBackData), new SQLiteParameter("@LastupdateTime", DateTime.Now) }; dbHelper.ExecuteNonQuery(queryTxt, sqlParameters); } else { queryTxt = @"insert into users(U_Guid,U_Name,U_Password,U_LastUpdateTime,U_Top_AppKey,U_Top_AppSecret,U_Top_SessionKey,U_Top_CallbackData) values(@U_guid,@U_Name,@U_Password,@U_LastUpdateTime,@U_Top_AppKey,@U_Top_AppSecret,@U_Top_SessionKey,@U_Top_CallbackData); SELECT @@IDENTITY"; sqlParameters = new[] { new SQLiteParameter("@U_Guid", Guid.NewGuid().ToString("N")), new SQLiteParameter("@U_Name", "admin"), new SQLiteParameter("@U_Password", "admin888"), new SQLiteParameter("@U_LastUpdateTime", DateTime.Now), new SQLiteParameter("@U_Top_AppKey", tc.AppKey), new SQLiteParameter("@U_Top_AppSecret", tc.AppSecret), new SQLiteParameter("@U_Top_SessionKey", tc.SessionKey), new SQLiteParameter("@U_Top_CallbackData", tc.TopCallBackData) }; dbHelper.ExecuteScalar(queryTxt, sqlParameters); } } #endregion #region Ef /* using (var topDb = new TopCore.DataAccess.TopEntities()) { var queryTxt = from a in topDb.Users where a.U_Top_AppKey == tc.AppKey && a.U_Top_AppSecret == tc.AppSecret select a; var topInfo = queryTxt.First(); if (topInfo != null) { topInfo.U_Top_SessionKey = tc.SessionKey; topInfo.U_LastUpdateTime = DateTime.Now; topDb.SaveChanges(); } else { var topEntity = new User { U_Name = "admin", U_Password = "******", U_LastUpdateTime = DateTime.Now, U_Top_AppKey = tc.AppKey, U_Top_AppSecret = tc.AppSecret, U_Top_SessionKey = tc.SessionKey, U_Top_CallbackData = tc.TopCallBackData.ToString() }; topDb.AddToUsers(topEntity); } } */ #endregion #endregion result = true; if (isRedirect) httpContext.Response.Redirect(TopApiMainUrl); } return result; }
public ActionResult RefreshToken() { var tConfig = new TopConfigs(); Response.Redirect(tConfig.TopApiRefreshTokenUrl); return View(); }
public ActionResult UserGet() { var tConfig = new TopConfigs(); var request = new Top.Api.Request.UserGetRequest(); request.Fields = "user_id,uid,nick,sex,buyer_credit,seller_credit,location,created,last_visit,birthday,type"; var response = tConfig.TopClient(TopCore.Enum.ResultFormat.json).Execute(request, tConfig.SessionKey); JObject.Parse(response.Body); Response.Write(response.Body); return View(); }