Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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());
             }
         }
     }
 }
Esempio n. 3
0
        /// <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;
        }
Esempio n. 4
0
        public ActionResult RefreshToken()
        {
            var tConfig = new TopConfigs();
            Response.Redirect(tConfig.TopApiRefreshTokenUrl);

            return View();
        }
Esempio n. 5
0
        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();
        }