前几天我朋友说他知道怎么实现网站使用QQ号登陆或者注册了,于是要他发给我学习,感觉好复杂,而且运行不了(主要万原因是因为这东西得上传到空间是实验),于是在博客园找了相关的资料,发现在也并不是很复杂的,比他的简单多了。

首先请到这里下载最新版本的SDK:http://opensns.codeplex.com/

SDK依赖于Newtonsoft.Json和RestSharp两个程序集,具体可以参考使用RestSharp 库消费Restful Service。 主要是两个类QzoneContext(QQ登陆的上下文数据)  和 QOpenClient (QQ互联API入口),其他类主要是模型,配置类。

我这里新建的项目是在.net framwork 4.0,请你转换成 .net framwork 4.0,否则可能会出错,运行不了

1、你得去http://connect.qq.com/ 申请一个账号,会得到一个APP ID和App Key,这两个东东会在生成请求的时候用到。你的去填一些资料,还要提交一些资料审核。

在配置文件web.config加入QQ登陆所需要的一些配置参数,下面的代码请加到如下图选中的地方

<sectionGroup name="QQSectionGroup"><section name="QzoneSection" type="System.Configuration.NameValueSectionHandler,System, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089"/></sectionGroup><section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/></configSections><QQSectionGroup><QzoneSection><add key="AppKey" value="*******"/><!--这里这填上你在http://connect.qq.com/manage/注册后获得的APP ID--><add key="AppSecret" value="*****************"/><!--这里填上注册后的APP KEY--><add key="CallBackURI" value="http://www.xxxx.cn"/><!--注册时写的回调地址--><add key="AuthorizeURL" value="https://graph.qq.com/oauth2.0/authorize"/></QzoneSection></QQSectionGroup><appSettings><!--<add key="ClientValidationEnabled" value="true" /><add key="UnobtrusiveJavaScriptEnabled" value="true" /><add key="DaoType" value="Codingwell.DevText.SQLDAL" />--><add key="appKey" value="*************"/><!--这里如上面一样--><add key="appSecret" value="*******************"/><add key="callbackUrl" value="http://www.xxxxxxxxx.cn"/><add key="SmtpHost" value="smtp.gmail.com"/><add key="SmtpUser" value=""/><add key="SmtpPassword" value=""/><add key="EnableSsl" value="true"/><add key="SslPort" value="587"/></appSettings>
复制代码

AppKey是申请QQ登录成功后,分配给应用的appid;AppSecret是申请QQ登录成功后,分配给网站的appkey;CallBackURI是QQ登陆成功后的回调地址:AuthorizeURL是QQ互联的OAth2认证地址。

在项目中添加上面下载的SDK文件夹中三个引用Newtonsoft.Json.dll、RestSharp.dll和 QConnectSDK.dll, 在页面上放置按钮,打开qq登录的页面,然后登录成功之后回调您的网站的页面。此时如果用户在你的网站有账号,那就可以绑定现有账号,或者新注册一个账号。如果你是新建站,也可以完全使用qq登录来作为用户体系。

登陆页面:

using QConnectSDK.Context;//请加入这个命名空间public partial class LoginToQQ : System.Web.UI.Page
{protected void Page_Load(object sender, EventArgs e){GetRequestToken();}private void GetRequestToken(){var context = new QzoneContext();string state = Guid.NewGuid().ToString().Replace("-", "");string scope = "get_user_info,add_share,list_album,upload_pic,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,add_one_blog,add_topic,get_tenpay_addr";var authenticationUrl = context.GetAuthorizationUrl(state, scope);//request token, request token secret 需要保存起来 //在demo演示中,直接保存在全局变量中.真实情况需要网站自己处理 Session["requeststate"] = state;Response.Redirect(authenticationUrl);}}

回调页面:

using QConnectSDK;//请加入这个命名空间
using QConnectSDK.Models;
public partial class QQCallback : System.Web.UI.Page
{protected void Page_Load(object sender, EventArgs e){if (Request.Params["code"] != null){QOpenClient qzone = null;User currentUser = null;var verifier = Request.Params["code"];string state = Session["requeststate"].ToString();qzone = new QOpenClient(verifier, state);currentUser = qzone.GetCurrentUser();if (null != currentUser){this.result.Text = "成功登陆";this.Nickname.Text = currentUser.Nickname;this.Figureurl.ImageUrl = currentUser.Figureurl;}Session["QzoneOauth"] = qzone;}}
}

参考博文:http://www.cnblogs.com/shanyou/archive/2012/02/05/2338797.html

http://www.devtext.com/blogs/detail/43/devtext-com-source-code 以及这个网站提供下载的网站源码。

本示例Demo下载地址:http://files.cnblogs.com/koeltp/WebSite14.rar

[转载]网站使用QQ登陆相关推荐

  1. QQ总显示服务器请求中,网站添加QQ登陆 报错 可能是服务器无法请求https协议 解决方法...

    最近一个项目要整合qq互联登陆,在使用sdk的时候就发现了这个问题:可能未开启curl支持,请尝试开启curl支持,重启web服务器,如果问题仍未解决,请联系我们 实在太尴尬了,网上找了些方法!感觉没 ...

  2. Zblog博客怎么实现QQ登陆?

    需要注意: Zblog博客实现QQ登陆-只适用有云服务器的,有公网ip的,linux本地测试不行,域名必须是备案过的 登陆zblog后台,应用商店搜索QQ互联插件 下载并打开插件 这里有你网站的QQ登 ...

  3. QQ互联OAuth2.0 .NET SDK 发布以及网站QQ登陆示例代码(转)

    OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容. QQ登录OAuth2 ...

  4. QQ互联OAuth2.0 .NET SDK 发布以及网站QQ登陆示例代码

    OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容. QQ登录OAuth2 ...

  5. php网站 qq登陆,PHP QQ一键登入网站实现过程

    qq一键登入功能对于大多数小中型网站来说是十分必要的,因为他给你的用户带来了极大的方便,但是想要集成网站的qq一键登入功能,你必须要一些编程基础,使网站和qq登入的应用之间进行一些必要的交互,下面我简 ...

  6. 网站使用QQ登录问题小结

    关于网站如何使用QQ登陆这个问题就不多说了,很简单,登陆connect.qq.com找到相应的SDK,下载下来,里面会有demo,将相应的appid,appkey和回调地址callback改成自己的就 ...

  7. ecshop 整合 QQ登陆 和 支付宝快捷登陆代码

    首先 目录结构 我基本上是把 文档里面的 有用的直接上传进了 /api/里面然后 分别登陆 处理 .返回文件 分别写在了 qqlogin.php  和 alipaylogin.php 文件里面 QQ ...

  8. 第三方登陆——QQ登陆详解

    申请地址 QQ互联:https://connect.qq.com/index.html 腾讯开放平台:https://open.tencent.com/ 注册账号 登陆 进入QQ互联,点击登陆 资料填 ...

  9. 网站使用QQ登录功能

    一般网站要先做个用户注册的功能页面,但我的网站名气不大,不需要要求用户注册,所以直接使用腾讯QQ登录的API接口. 如何使用JS_SDK让网站拥有QQ登录的功能,官网的这篇文章写得还算完整:http: ...

最新文章

  1. 【git学习三】git基础之git管理远程仓库
  2. nginx 允许跨域_细谈跨域请求的桥梁
  3. “Paper + Code”加量豪华套餐 | PaperDaily #04
  4. 数字n,按字典排序,找出第k小的数字
  5. 高电压技术思维导图_钢铁技术:钢铁行业板坯连铸结晶器振动常见故障思维导图...
  6. spring boot 1.4默认使用 hibernate validator
  7. 腾讯开源大规模X光预训练模型及代码 |MICCAI 2020
  8. android视频录制(调用系统视频录制),生成缩略图
  9. window对象(一) 计时器 定位导航 url解析 浏览历史 对话框 消息推送
  10. upload组件 获得焦点_HTML Input FileUpload autofocus用法及代码示例
  11. MyBatis3:SQL映射
  12. Mbs Framework 简介
  13. Arm云游戏及虚拟化技术沙龙,Arm中国,NVIDIA,腾讯及百度等为你分享超强技术干货
  14. [附源码]Java计算机毕业设计SSM房屋租赁管理系统设计
  15. php快递按选择次数排序,php快递接口查询api 不限制次数
  16. 判断邮箱正确的c语言代码,如何用c语言来识别电子邮箱是否正确
  17. macbook打开网页慢解决办法
  18. DHCP 客户端移动位置后无法获取IP地址的解决办法和原因分析
  19. 【NiosII训练】第一篇、FPGA驱动AD9854基础篇
  20. 我的世界Scratch版

热门文章

  1. Map集合的遍历方式
  2. java 数字签名_数字签名的Java签名步骤
  3. 2023年上半年全国软考报名时间及地区更新
  4. 搜索引擎从入门到精通之五 国内篇(转)
  5. PMP备考错题集-作业习题一
  6. 使用vbscript.regexp实现VBA代码格式化
  7. ssh无法连接虚拟机
  8. 数字雨 ` C4droid
  9. java 逐行读写文件_用Java逐行读取和写入大文件的最快方法
  10. Vue 3.0 公开代码之后的一些争论