.net QQ登录实现,qq开放登录接入,qq登录集成

 以下是.net 2.0下,用sdk2 实现qq登录的简单处理

点QQ登录按钮调用的方法

private void qqlogin()
    {

        //app_id

        string key = "21****";

       //app_id 对应的key pwd
        string secret = "5dedd5c2a88a14b0156d5553b669f3d6";

        QzoneSDK.Context.QzoneContext context = new QzoneSDK.Context.QzoneContext(key, secret);

        //回调地址,一般只需填写你网站的域名
        string callbackUrl = "http://www.domain.com/";
        QzoneSDK.OAuth.Tokens.OAuthToken requestToken = context.GetRequestToken(callbackUrl);
       
        //Session["requestToken"] = requestToken;
        //request token, request token secret 需要保存起来

        //在demo演示中,直接保存在全局变量中.真实情况需要网站自己处理

        Session["requesttokenkey"] = requestToken.TokenKey;

        Session["requesttokensecret"] = requestToken.TokenSecret;
       

        string authenticationUrl = context.GetAuthorizationUrl(requestToken, callbackUrl);
        Session["qqurl"] = authenticationUrl;
        Response.Redirect(authenticationUrl);
    }

在回调地址中处理如下:

得到的open_id 跟QQ是一一对应的,但得不到QQ号

protected void QQLoginCallback()
    {
        #region qqlogin
        //处理QQ登录
        
        try
        {
           
            string oauth_token = "";
            string openid = "";
            string oauth_signature = "";
            string oauth_vericode = "";
            string code = "";
            if (Request["oauth_token"] != null)
            {
                oauth_token = Request["oauth_token"];
            }
            if (Request["code"] != null)
            {
                code = Request["code"];
            }
            if (Request["openid"] != null)
            {
                openid = Request["openid"];
               
                Response.Redirect("index.aspx");//成功后跳转到的页面
            }
            if (Request["oauth_signature"] != null)
            {
                oauth_signature = Request["oauth_signature"];
            }
            if (Request["oauth_vericode"] != null)
            {
                oauth_vericode = Request["oauth_vericode"];
            }
        }
        catch (Exception ex1)
        {
        }

        #endregion
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
注意: 不需要很多的类库 全部下来只有三个文件 。一个类库和两个前台页面,你将类库放到AppCode下面。然后将账号绑定那一块注释掉就行了,或者将账号绑定部分换成你自己系统的。就可以了。程序报错可能是因为我在绑定账号那里用到了别的类,你注释掉就行了 ------------------------------------------------------------ 经过两天的努力 已经成功将QQ登录集成到了 城记网 上。感谢腾讯提供的帮助文档,和关键时刻给的技术支持。我的网站是asp.net写的,有需要的网友可以联系我。 呵呵。(尽管是垃圾站,只要你愿意,又有什么关系呢?) QQ Oauth 只提供PHP的接入demo ,针对 ASP.net 的只有一个网友开发的SDK包,下载地址还老打不开,后来我从CSDN上下载了一个,看了以后感觉太复杂了,我个人感觉做这么个小事情不需要搞个SDK出来,不如自己按帮助文档去写,这样自己写的方法灵活性就高一些,于是就按文档学习开发。其实文档写得很清晰,耐心一看就明白了。 不讲太多的郁闷的过程了,直接说解决办法。 办这个事情主要要知道下面几个事情。 两个重点(如下): 第一个重点:请求Token的步骤, 1:请求未授权的临时token。请求成功以后会转到QQ登录页面。 2:请求已授权的临时token。登陆成功以后获得。 3:请求已授权的Access token。 第二个重点:签名的算法。 签名的值计算有一个指定的规则,请参考腾讯开放社区帮助文档,这是最 好的资料。 注意点: 没有申请APPID和APPKEY的先去申请。 传递的每一参数都要URLENcode,注意是每一个,包括动态生成的签名。    参数之间是有顺序的,是升序排列的,无论有多少个,都要排序。    各个步骤之间是有关联的,下一步的提交往往需要上一步的返回参数。 我采取的文档结构: 总共三个文件 ,非常简单。 一个放在APPcode下面的类。用来发送请求和接待参数。 两个前台页面,主要是对类的调用。 下面把类的代码完全贴出,你知要一看见类,就知道怎么写前台页面了,很简单
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值