OAuth QQ登录 .Net SDK v1.0 beta 2+demo----原来一切可以更简单

在上一次发布的开源SDK Beta  版后,发现很多童鞋有这方面的需求,但有的还是不知道什么用,什么和以前的网站结合。昨晚想了一下,觉得还是有必要进一步开发,很晚才弄完,来不及写博通知各位了,罪过。在beta 2 版本中,提供了登录按钮控件,拖到页面后就可以实现QQ登录功能了,这种方式更简单了,且听我慢慢道来。


asp.net 登录控件



一键登录

  • 如何获取

开源地址:http://qzoneoauth.codeplex.com/

示例:http://www.sl8.so/

  • 重要变更

为了统一名称,beta 1 版本中的 Qzone.OAuth.TencentOAuthCallBackHandler 改为 Qzone.OAuth.QzoneOAuthCallBackHandler,如果你是从beta更新过来的,修改相应的httpHanders即可,其它功能完全兼容beta 1 。

  • 增加功能
  1. 增加了 LoginButton控件,现在在asp.net 页面拖出LoginButton,配置web.config,即可完成登录。
  • 环境准备
  1. .net framework:至少2.0
  2. 项目引用:Microsoft.JScript,System.configuration
  3. 服务器必须支持Session,因为过程数据用Session来保存
  • 使用步骤

beta 2 版本提供了两种登录方式,第一种就是上一遍文章的方式,本文着重讲解第二种登录方式。在第二种登录方式中,提供了LoginButton asp.net控件,你可以把它添加到Visual Studio 工具箱,再拖放到页面。或者直接在aspx页面手动编写如下代码。总的步骤分为两步:

  1. 配置 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值不能改变。
  2. <httpHandlers>
         <add verb="*" path="*/qzoneoauth.axd" type="Qzone.OAuth.QzoneOAuthCallBackHandler, Qzone.OAuth" validate="false"/>
       </httpHandlers>

  3. 在页面中使用LoginButton控件
    页面中用控件就像asp.net 内置控件一样,拖到页面后,你需要关注的是LoginButton控件提供的一个事件和一个属性:
    Logined 事件:此事件是登录成功后PostBack事件,在事件实现你的逻辑,获取用户信息等等。
    OnClientLogined 属性:有时候你不想要PostBack刷新页面,这是就提供了OnClientLogined 属性,属性值是脚本字符串,登录成功后将会调用,在脚本方法了,你就可以实现你想要的功能了。
  • 后记

还是老问题

  1. 服务器要支持Session。
  2. 在本地测试的时候,需要更改 hosts 文件,这样腾讯调转时才能连到你本机,还有测试系统通过 http://127.0.0.1来访问,而不是http://127.0.0.1:端口号。这需要在IIS默认网站设置主目录。
  3. hosts 文件修改方法:
    用记事本打开 文件(C:\Windows\System32\drivers\etc\hosts),添加映射记录如:
    127.0.0.1   
    www.sl8.so
    其中www.sl8.so是你的域名地址,记住127.0.0.1后不能加端口号。
posted on 2011-05-24 20:35  Hunter.Wei  阅读(3188)  评论(21编辑  收藏  举报