OAuth QQ登录 .Net SDK v1.0 beta 2+demo----原来一切可以更简单
在上一次发布的开源SDK Beta 版后,发现很多童鞋有这方面的需求,但有的还是不知道什么用,什么和以前的网站结合。昨晚想了一下,觉得还是有必要进一步开发,很晚才弄完,来不及写博通知各位了,罪过。在beta 2 版本中,提供了登录按钮控件,拖到页面后就可以实现QQ登录功能了,这种方式更简单了,且听我慢慢道来。
![](http://www.sl8.so/image.axd?picture=2011%2f5%2f1.png)
asp.net 登录控件
![](http://www.sl8.so/image.axd?picture=2011%2f5%2f2.png)
一键登录
- 如何获取
开源地址:http://qzoneoauth.codeplex.com/
- 重要变更
为了统一名称,beta 1 版本中的 Qzone.OAuth.TencentOAuthCallBackHandler 改为 Qzone.OAuth.QzoneOAuthCallBackHandler,如果你是从beta更新过来的,修改相应的httpHanders即可,其它功能完全兼容beta 1 。
- 增加功能
- 增加了 LoginButton控件,现在在asp.net 页面拖出LoginButton,配置web.config,即可完成登录。
- 环境准备
- .net framework:至少2.0
- 项目引用:Microsoft.JScript,System.configuration
- 服务器必须支持Session,因为过程数据用Session来保存
- 使用步骤
beta 2 版本提供了两种登录方式,第一种就是上一遍文章的方式,本文着重讲解第二种登录方式。在第二种登录方式中,提供了LoginButton asp.net控件,你可以把它添加到Visual Studio 工具箱,再拖放到页面。或者直接在aspx页面手动编写如下代码。总的步骤分为两步:
- 配置 web.config,此时你需要配置三个节点:
appSettiongs 增加两个子节点,填写app id 和app key,登录控件会从这里取值。
<appSettings>
<!--请填写app id-->
<add key="Qzone.OAuth.AppId" value=""/>
<!--请填写app key-->
<add key="Qzone.OAuth.AppKey" value=""/>
</appSettings>
httpHandlers 添加如下节点,注意path值不能改变。 - 在页面中使用LoginButton控件
页面中用控件就像asp.net 内置控件一样,拖到页面后,你需要关注的是LoginButton控件提供的一个事件和一个属性:
Logined 事件:此事件是登录成功后PostBack事件,在事件实现你的逻辑,获取用户信息等等。
OnClientLogined 属性:有时候你不想要PostBack刷新页面,这是就提供了OnClientLogined 属性,属性值是脚本字符串,登录成功后将会调用,在脚本方法了,你就可以实现你想要的功能了。
<httpHandlers>
<add verb="*" path="*/qzoneoauth.axd" type="Qzone.OAuth.QzoneOAuthCallBackHandler, Qzone.OAuth" validate="false"/>
</httpHandlers>
- 后记
还是老问题
- 服务器要支持Session。
- 在本地测试的时候,需要更改 hosts 文件,这样腾讯调转时才能连到你本机,还有测试系统通过 http://127.0.0.1来访问,而不是http://127.0.0.1:端口号。这需要在IIS默认网站设置主目录。
- hosts 文件修改方法:
用记事本打开 文件(C:\Windows\System32\drivers\etc\hosts),添加映射记录如:
127.0.0.1 www.sl8.so
其中www.sl8.so是你的域名地址,记住127.0.0.1后不能加端口号。