public ActionResult LogOnByQQCallback(string oauth_token, string oauth_vericode) { if (oauth_token != null && oauth_vericode != null && Session["requesttokensecret"] != null) { var requestTokenSecret = Session["requesttokensecret"].ToString(); QzoneSDK.Qzone qzone = new QzoneSDK.Qzone(key, secret, oauth_token, requestTokenSecret, oauth_vericode); ShortUserInfo userinfo = Users.GetUserInfoByQqOpenid(qzone.OpenID); if (userinfo != null) { FormsAuthentication.SetAuthCookie(userinfo.Username, true); Response.Write("<script type=\"text/javascript\">window.opener.location.reload();window.close();</script>"); return(View()); } var currentUser = qzone.GetCurrentUser(); //Response.Write(currentUser); var user = (BasicProfile)JsonConvert.DeserializeObject(currentUser, typeof(BasicProfile)); if (null != user) { userinfo = new ShortUserInfo(); userinfo.Username = user.Nickname; Session["qqopenid"] = qzone.OpenID; //Response.Write("<br />" + user.Nickname + "<br />" + qzone.OpenID); return(View(userinfo)); } } return(RedirectToAction("LogOn", "Account")); }
private void GetUserInfo() { if (Request.QueryString["oauth_vericode"] != null) { var requestTokenKey = Session["requesttokenkey"].ToString(); var requestTokenSecret = Session["requesttokensecret"].ToString(); var verifier = Request.QueryString["oauth_vericode"]; string key = ConfigurationManager.AppSettings["ConsumerKey"]; string secret = ConfigurationManager.AppSettings["ConsumerSecret"]; QzoneSDK.Qzone qzone = new QzoneSDK.Qzone(key, secret, requestTokenKey, requestTokenSecret, verifier); //这里需要将qzone.OAuthTokenKey, qzone.OAuthTokenSecret, qzone.OpenID 存储起来用于后面的API的访问 QzoneSDK.Qzone qzone2 = new QzoneSDK.Qzone(key, secret, qzone.OAuthTokenKey, qzone.OAuthTokenSecret, string.Empty, true, qzone.OpenID); Session["qzonesdk"] = qzone2; //qzone2 = Session["qzonesdk"] as QzoneSDK.Qzone; var currentUser = qzone2.GetCurrentUser(); this.result.Text = currentUser; //var user = (BasicProfile)JsonConvert.Import(typeof(BasicProfile), currentUser); //if (null != currentUser) //{ //this.result.Text = "成功登陆"; //this.Nickname.Text = user.Nickname; //this.Figureurl.Text = user.Figureurl; //this.lbMoreInfo.Text="User's Msg:"+user.Msg+"User's Ret:"+user.Ret.ToString(); //Image1.ImageUrl=user.Figureurl; //var list = Database.Instance.QzoneOauth.Where(x => x.OpenId == qzone2.OpenID).ToList(); //if (list.Count > 0) //{ // QzoneOauth model = list[0]; // var newCookie = new HttpCookie("MemberID", model.UserId.ToString()); // newCookie.Expires = DateTime.Now.AddDays(10); // Response.AppendCookie(newCookie); // Session["QzoneOauth"] = model; //} //else //{ // User member = new User(); // member.Login = user.Nickname; // member.Password = "******".Hash(); // member.ID = Guid.NewGuid(); // Database.Instance.InsertUser(member); // QzoneOauth oauth = new QzoneOauth() // { // AccessTokenKey = qzone2.OAuthTokenKey, // AccessTokenSecret = qzone2.OAuthTokenSecret, // OpenId = qzone2.OpenID, // ID = Guid.NewGuid(), // UserId = member.ID, // }; // Database.Instance.InsertQzoneOauth(oauth); // var newCookie = new HttpCookie("MemberID", member.ID.ToString()); // newCookie.Expires = DateTime.Now.AddDays(10); // Response.AppendCookie(newCookie); // Session["QzoneOauth"] = oauth; //} //} } }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["oauth_vericode"] != null) { var requestTokenKey = Session["requesttokenkey"].ToString(); var requestTokenSecret = Session["requesttokensecret"].ToString(); var verifier = Request.QueryString["oauth_vericode"]; string key = ConfigurationManager.AppSettings["ConsumerKey"]; string secret = ConfigurationManager.AppSettings["ConsumerSecret"]; QzoneSDK.Qzone qzone = new QzoneSDK.Qzone(key, secret, requestTokenKey, requestTokenSecret, verifier); //这里需要将qzone.OAuthTokenKey, qzone.OAuthTokenSecret, qzone.OpenID 存储起来用于后面的API的访问 QzoneSDK.Qzone qzone2 = new QzoneSDK.Qzone(key, secret, qzone.OAuthTokenKey, qzone.OAuthTokenSecret, string.Empty, true, qzone.OpenID); Session["qzonesdk"] = qzone2; qzone2 = Session["qzonesdk"] as QzoneSDK.Qzone; var currentUser = qzone2.GetCurrentUser(); var user = (BasicProfile)JsonConvert.Import(typeof(BasicProfile), currentUser); if (null != user) { this.result.Text = "成功登陆"; this.Nickname.Text = user.Nickname; this.Figureurl.Text = user.Figureurl; var list = Database.Instance.QzoneOauth.Where(x => x.OpenId == qzone2.OpenID).ToList(); if (list.Count > 0) { QzoneOauth model = list[0]; var newCookie = new HttpCookie("MemberID", model.UserId.ToString()); newCookie.Expires = DateTime.Now.AddDays(10); Response.AppendCookie(newCookie); Session["QzoneOauth"] = model; } else { User member = new User(); member.Login = user.Nickname; member.Password = "******".Hash(); member.ID = Guid.NewGuid(); Database.Instance.InsertUser(member); QzoneOauth oauth = new QzoneOauth() { AccessTokenKey = qzone2.OAuthTokenKey, AccessTokenSecret = qzone2.OAuthTokenSecret, OpenId = qzone2.OpenID, ID = Guid.NewGuid(), UserId = member.ID, }; Database.Instance.InsertQzoneOauth(oauth); var newCookie = new HttpCookie("MemberID", member.ID.ToString()); newCookie.Expires = DateTime.Now.AddDays(10); Response.AppendCookie(newCookie); Session["QzoneOauth"] = oauth; } } } }
public ActionResult OnLoginQZone(FormCollection collection) { if (Request.QueryString["oauth_vericode"] != null) { var requestTokenKey = Session["requestTokenKey"].ToString(); var requestTokenSecret = Session["requestTokenSecret"].ToString(); var verifier = Request.QueryString["oauth_vericode"]; string key = ConfigurationManager.AppSettings["ConsumerKey"]; string secret = ConfigurationManager.AppSettings["ConsumerSecret"]; QzoneSDK.Qzone qzone = new QzoneSDK.Qzone(key, secret, requestTokenKey, requestTokenSecret, verifier); var access = qzone.OAuthTokenKey; var currentUser = qzone.GetCurrentUser(); //var user = (QzoneSDK.Models.BasicProfile)JsonConvert(typeof(QzoneSDK.Models.BasicProfile), currentUser); } return View(); }
void Callback() { //创建用户 if (DNTRequest.GetInt("createuser", 0) == 1) { username = DNTRequest.GetString("username"); email = DNTRequest.GetString("email"); string qqopenid = Utils.GetCookie("wysky_qzlogin", "qqopenid"); CreateUser(username, email, qqopenid); return; } else { string oauth_token = DNTRequest.GetString("oauth_token"); string oauth_vericode = DNTRequest.GetString("oauth_vericode"); string requestTokenSecret = Utils.GetCookie("wysky_qzlogin", "requesttokensecret"); if (oauth_token == string.Empty || oauth_vericode == string.Empty || requestTokenSecret == string.Empty) { pagetitle = "发生错误"; wysky_page_msg = "<script type=\"text/javascript\">alert('模块参数有空值,请回到登录页面重新登录!');window.opener.location.href='login.aspx';window.close();</script>"; return; } QzoneSDK.Qzone qzone = new QzoneSDK.Qzone(qzlConfig.AppId, qzlConfig.AppKey, oauth_token, requestTokenSecret, oauth_vericode); if (DNTRequest.GetInt("bind", 0) > 0) { //要求登录 if (userid < 0) { pagetitle = "请先登录论坛才能绑定/解绑 QQ 帐号!"; wysky_page_msg = "<script type=\"text/javascript\">alert('请先登录论坛才能绑定/解绑 QQ 帐号!');window.opener.location.href='login.aspx';window.close();</script>"; return; } //开始绑定 if (DNTRequest.GetInt("bind", 0) == 1) { int usedUid = BLL.Main.GetUIDByQqOpenid(qzone.OpenID); if (usedUid > 0) { ShortUserInfo usedUserInfo = Users.GetShortUserInfo(usedUid); pagetitle = "你的 QQ 帐号已经绑定过别的论坛帐号"; wysky_page_msg = string.Format( "<script type=\"text/javascript\">alert('你的 QQ 帐号已经绑定过别的论坛帐号{0}。如果想要绑定在当前帐号下,请先登录{0},取消之前的绑定!');window.opener.location.href='login.aspx';window.close();</script>", usedUserInfo.Username ); return; } //清理历史记录 BLL.Main.DeleteQqLoginInfo(qzone.OpenID, userid); BLL.Main.CreateQqUserInfo(qzone.OpenID, userid); pagetitle = "绑定成功"; wysky_page_msg = "<script type=\"text/javascript\">alert('绑定 QQ 帐号成功!');window.opener.location.reload();window.close();</script>"; return; } return; } userid = BLL.Main.GetUIDByQqOpenid(qzone.OpenID); if (userid != -1) { UserCredits.UpdateUserCredits(userid); ForumUtils.WriteUserCookie(userid, -1, config.Passwordkey); OnlineUsers.UpdateAction(olid, UserAction.Register.ActionID, 0, config.Onlinetimeout); pagetitle = "登录成功"; wysky_page_msg = "<script type=\"text/javascript\">window.opener.location.reload();window.close();</script>"; return; } else { var currentUser = qzone.GetCurrentUser(); var user = (QzoneLoginInfo)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(currentUser, typeof(QzoneLoginInfo)); if (null != user) { username = user.nickname; Utils.WriteCookie("wysky_qzlogin", "qqopenid", qzone.OpenID); } } } }