public ActionResult LogOnByQQ() { var context = new QzoneSDK.Context.QzoneContext(key, secret); #if DEBUG var callbackUrl = "http://localhost:4487/Home/Index"; //"/qzone/account/QQCallback.aspx"; #else var callbackUrl = "http://wysky.org/Account/LogOnByQQCallback"; #endif var requestToken = context.GetRequestToken(callbackUrl); Session["requesttokensecret"] = requestToken.TokenSecret; var authenticationUrl = context.GetAuthorizationUrl(requestToken, callbackUrl); return(Redirect(authenticationUrl)); }
private void GetRequestToken() { string key = ConfigurationManager.AppSettings["ConsumerKey"]; string secret = ConfigurationManager.AppSettings["ConsumerSecret"]; var context = new QzoneSDK.Context.QzoneContext(key, secret); //Get a Request Token var callbackUrl = ConfigurationManager.AppSettings["callbackUrl"]; var requestToken = context.GetRequestToken(callbackUrl); //request token, request token secret 需要保存起来 //在demo演示中,直接保存在全局变量中.真实情况需要网站自己处理 Session["requesttokenkey"] = requestToken.TokenKey; Session["requesttokensecret"] = requestToken.TokenSecret; //Get the Qzone authentication page for the user to go to in order to authorize the Request Token. var authenticationUrl = context.GetAuthorizationUrl(requestToken, callbackUrl); Response.Redirect(authenticationUrl); }
public ActionResult LoginQZone() { string key = ConfigurationManager.AppSettings["ConsumerKey"]; string secret = ConfigurationManager.AppSettings["ConsumerSecret"]; var context = new QzoneSDK.Context.QzoneContext(key, secret); string callbackUrl = ConfigurationManager.AppSettings["CallbackUrl"]; var requestTokey = context.GetRequestToken(callbackUrl); Session["requestTokenKey"] = requestTokey.TokenKey; Session["requestTokeySecret"] = requestTokey.TokenSecret; var authenticationUrl = context.GetAuthorizationUrl(requestTokey, callbackUrl); return Redirect(authenticationUrl); }
protected override void ShowPage() { var callbackUrlParam = ""; #region 检查是否开启插件 if (qzlConfig.EnableQQLogin != 1) { pagetitle = "QQ 登录插件没有开启"; wysky_page_msg = "<script type=\"text/javascript\">alert('QQ 登录插件没有开启,请联系管理员!');window.close();</script>"; return; } #endregion #region 检查登录状态 var isBind = DNTRequest.GetInt("bind", 0); if (isBind > 0) { //如果是绑定/解绑,则要求登录状态才能使用 if (userid == -1) { pagetitle = "请登录后再进行 QQ 绑定"; wysky_page_msg = "<script type=\"text/javascript\">alert('请登录后再进行 QQ 绑定!');window.opener.location.href='login.aspx';window.close();</script>"; return; } if (isBind == 1 && BLL.Main.GetQqOpenidByUID(userid) != string.Empty) { pagetitle = "你已经绑定过 QQ"; wysky_page_msg = "<script type=\"text/javascript\">alert('你已经绑定过 QQ,如果想要更换绑定,请先取消之前的绑定!');window.close();</script>"; return; } if (isBind == 2) { if (DNTRequest.GetInt("addpwd", 0) == 1) { var newPassword = DNTRequest.GetString("password"); var newPassword2 = DNTRequest.GetString("password2"); pagetitle = "输入内容有误"; if (newPassword == string.Empty) { AddErrLine("密码不能为空!"); return; } if (newPassword != newPassword2) { AddErrLine("两次输入不一致!"); return; } UserInfo userinfo = Users.GetUserInfo(userid); userinfo.Password = newPassword; Users.ResetPassword(userinfo); } if (BLL.Main.IsNullPasswordUser(userid)) { showdelbindpasswordform = 1; return; } //解绑 BLL.Main.DeleteQqLoginInfo("", userid); pagetitle = "已经解除绑定"; wysky_page_msg = "<script type=\"text/javascript\">alert('已经解除 QQ 帐号绑定!');window.opener.location.reload();window.close();</script>"; return; } callbackUrlParam += "&bind=" + isBind; } else { //如果不是绑定,即为QQ登录,则要求在非登录状态 if (userid != -1) { pagetitle = "您已经登录"; wysky_page_msg = "<script type=\"text/javascript\">alert('您已经登录了,请不要重复登录!');window.opener.location.reload();window.close();</script>"; return; } } #endregion #region 开始接入 if (DNTRequest.GetInt("callback", 0) == 0) { //第一次发送 pagetitle = "使用QQ帐号登录"; var context = new QzoneSDK.Context.QzoneContext(qzlConfig.AppId, qzlConfig.AppKey); var callbackUrl = string.Format( "http://{0}/{1}QZoneLogin.aspx?callback=1{2}", DNTRequest.GetCurrentFullHost(), forumpath.Trim('/') == string.Empty ? "" : forumpath.Trim('/') + "/", callbackUrlParam ); var requestToken = context.GetRequestToken(callbackUrl); var authenticationUrl = context.GetAuthorizationUrl(requestToken, callbackUrl); Utils.WriteCookie("wysky_qzlogin", "requesttokensecret", requestToken.TokenSecret); System.Web.HttpContext.Current.Response.Redirect(authenticationUrl); } else { //验证后回传 Callback(); } #endregion }