protected void Page_Load(object sender, EventArgs e) { //取得返回参数 string state = WebUtils.GetQueryString("state"); string code = WebUtils.GetQueryString("code"); string access_token = string.Empty; string expires_in = string.Empty; string client_id = string.Empty; string openid = string.Empty; if (Session["oauth_state"] == null || Session["oauth_state"].ToString() == "" || state != Session["oauth_state"].ToString()) { Response.Write("出错啦,state未初始化!"); return; } //第一步:获取Access Token Dictionary <string, object> dic = SinaAuth.get_access_token(code); if (dic == null || !dic.ContainsKey("access_token")) { Response.Write("出错了,无法获取Access Token,请检查App Key是否正确!"); return; } access_token = dic["access_token"].ToString(); expires_in = dic["expires_in"].ToString(); openid = dic["uid"].ToString(); //储存获取数据用到的信息 Session["oauth_name"] = "sina"; Session["oauth_access_token"] = access_token; Session["oauth_openid"] = openid; //第二步:跳转到指定页面 Response.Redirect("result_json.aspx"); //在这里进行处理 }
protected void Page_Load(object sender, EventArgs e) { string oauth_access_token = string.Empty; string oauth_openid = string.Empty; string oauth_name = string.Empty; if (Session["oauth_name"] == null || Session["oauth_access_token"] == null || Session["oauth_openid"] == null) { Response.Write("{\"ret\":\"1\", \"msg\":\"出错啦,Access Token已过期或不存在!\"}"); return; } oauth_name = Session["oauth_name"].ToString(); oauth_access_token = Session["oauth_access_token"].ToString(); oauth_openid = Session["oauth_openid"].ToString(); JsonData jd = SinaAuth.get_info(oauth_access_token, oauth_openid); if (jd == null) { Response.Write("{\"ret\":\"1\", \"msg\":\"出错啦,无法获取授权用户信息!\"}"); return; } #region 弃用 /* * StringBuilder str = new StringBuilder(); * str.Append("{"); * str.Append("\"ret\": \"0\", "); * str.Append("\"msg\": \"获得用户信息成功!\", "); * str.Append("\"oauth_name\": \"" + oauth_name + "\", "); * str.Append("\"oauth_access_token\": \"" + oauth_access_token + "\", "); * str.Append("\"oauth_openid\": \"" + jd["id"].ToString() + "\", "); * str.Append("\"nick\": \"" + jd["screen_name"].ToString() + "\", "); * str.Append("\"avatar\": \"" + jd["profile_image_url"].ToString() + "\", "); * * if (jd["gender"].ToString() == "m") * { * str.Append("\"sex\": \"男\", "); * } * else if (jd["gender"].ToString() == "f") * { * str.Append("\"sex\": \"女\", "); * } * else * { * str.Append("\"sex\": \"保密\", "); * } * str.Append("\"birthday\": \"\""); * str.Append("}"); * * Response.Write(str.ToString()); */ #endregion #region 保存并登录会员 //用户名称 string strUserName = jd["screen_name"].ToString(); //个人会员 企业会员 var uGroup = BLL.UserGroup.GetCacheUserGroupList().Where(p => p.GroupName.Equals("个人会员")); //会员等级 var uLevel = BLL.UserLevel.GetCacheUserLevelList().Where(p => p.LevelName.Equals("初级会员")); UserInfo user = new UserInfo() { UserName = strUserName, Password = BLL.User.GetEncodePwd("123456"), GroupID = uGroup.Count() > 0 ? uGroup.First().AutoID : 0, LevelID = uLevel.Count() > 0 ? uLevel.First().AutoID : 0, Email = StringUtils.GetRandomNumber() + "@qq.com", Mobile = string.Empty, Status = (int)UserStatus.Success, //默认为审核状态 AutoTimeStamp = System.DateTime.Now }; IList <UserFieldInfo> listField = BLL.UserField.GetFieldListByModelID(user.GroupID, true); Dictionary <string, UserFieldInfo> fieldDicWithValues = new Dictionary <string, UserFieldInfo>(); if (!BLL.User.IsExistsByName(strUserName)) { //不存在则注册会员 BLL.User.Reg(user, fieldDicWithValues); } //会员登录 UserInfo userLogin = new UserInfo(); LoginStatus status = BLL.User.UserLogin(strUserName, user.Password, ref userLogin); if (status == LoginStatus.Success) { Response.Redirect("/User/InfoCenter.aspx"); //返回到会员中心 } #endregion }