请教winform的新浪微博oauth2.0认证授权方式登录问题

上传时间:
新浪微博 Android OAuth2.0授权视频教程.SSO 授权认证
专辑名称:
专辑创建者:
播放次数:189
《新浪微博Android视频教程》是基于OAuth1.0 的,现在新浪升级了接口,采用OAuth2.0 认证机制,本教程着重讲解 OAuth2.0 的认证方式...
56官方微信
扫一扫发现精彩使用DotNetOpenAuth搭建OAuth2.0授权框架_Java123社区微信号:java123msg |||[][]当前位置: &
& 使用DotNetOpenAuth搭建OAuth2.0授权框架标题还是一如既往的难取。 我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案。当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就标题还是一如既往的难取。我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案。当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1.0、1.0a还是2.0,单看版本号就让人神伤。对接过各类开放平台的朋友对OAuth应该不会陌生。当年我小试了下淘宝API,各种token、key、secret、code、id,让我眼花缭乱,不明所以,虽然最终调通,但那种照猫画虎的感觉颇不好受。最近公司计划,开放接口的授权协议从1.0升到2.0,这个任务不巧就落在了我的头上。声明:我并没有认真阅读过OAuth2.0协议规范,本文对OAuth2.0的阐述或有不当之处,请谅解。本文亦不保证叙述的正确性,欢迎指正。OAuth2.0包含四种角色:用户,又叫资源所有者客户端,俗称第三方商户授权服务端,颁发AccessToken资源服务端,根据AccessToken开放相应的资源访问权限本文涉及到三种授权模式:Authorization Code模式:这是现在互联网应用中最常见的授权模式。客户端引导用户在授权服务端输入凭证获取用户授权(AccessToken),进而访问用户资源。需要注意的是,在用户授权后,授权服务端先回传客户端授权码,然后客户端再使用授权码换取AccessToken。为什么不直接返回AccessToken呢?主要是由于用户授权后,授权服务端重定向到客户端地址,此时数据只能通过QueryString方式向客户端传递,在地址栏URL中可见,不安全,于是分成了两步,第二步由客户端主动请求获取最终的令牌。Client Credentials Flow:客户端乃是授权服务端的信任合作方,不需要用户参与授权,事先就约定向其开放指定资源(不特定于用户)的访问权限。客户端通过证书或密钥(或其它约定形式)证明自己的身份,获取AccessToken,用于后续访问。Username and Password Flow:客户端被用户和授权服务端高度信任,用户直接在客户端中输入用户名密码,然后客户端传递用户名密码至授权服务端获取AccessToken,便可访问相应的用户资源。这在内部多系统资源共享、同源系统资源共享等场景下常用,比如单点登录,在登录时就获取了其它系统的AccessToken,避免后续授权,提高了用户体验。上述模式涉及到三类凭证:AuthorizationCode:授权码,授权服务端和客户端之间传输。AccessToken:访问令牌,授权服务端发给客户端,客户端用它去到资源服务端请求资源。RefreshToken:刷新令牌,授权服务端和客户端之间传输。对客户端来说,授权的过程就是获取AccessToken的过程。总的来说,OAuth并没有新鲜玩意,仍是基于加密、证书诸如此类的技术,在OAuth出来之前,这些东东就已经被大伙玩的差不多了。OAuth给到我们的最大好处就是统一了流程标准,一定程度上促进了互联网的繁荣。我接到任务后,本着善假于物的理念,先去网上搜了一遍,原本以为有很多资源,结果只搜到DotNetOpenAuth这个开源组件。更让人失望的是,官方API文档没找到(可能是我找的姿势不对,有知道的兄弟告知一声),网上其它资料也少的可怜,其间发现一篇OAuth2学习及DotNetOpenAuth部分源码研究,欣喜若狂,粗粗浏览一遍,有收获,却觉得该组件未免过于繁杂(由于时间紧迫,我并没有深入研究,只是当前观点)。DotNetOpenAuth包含OpenID、OAuth1.0[a]/2.0,自带的例子有几处暗坑,不易(能)调通。下面介绍我在搭建基于该组件的OAuth2.0授权框架时的一些心得体会。本文介绍的DotNetOpenAuth乃是对应4.0的版本。授权服务端&授权服务端交道打的最多的就是客户端,于是定义一个Client类,实现DotNetOpenAuth.OAuth2.IClientDescription接口,下面我们来看IClientDescription的定义:public interface IClientDescription {
Uri DefaultCallback { get; }
//0:有secret 1:没有secret
ClientType ClientType { 共8页顶一下(0)0%踩一下(0)0%------分隔线------上一篇: 下一篇: 栏目列表推荐内容做完整数划分那题后,现在感觉这道题很简单,状态转移方程为...新浪微博开放平台oauth2.0授权后如何重新让用户授权?
[问题点数:40分]
新浪微博开放平台oauth2.0授权后如何重新让用户授权?
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年2月 移动平台大版内专家分月排行榜第二2012年1月 移动平台大版内专家分月排行榜第二2011年5月 移动平台大版内专家分月排行榜第二2011年4月 移动平台大版内专家分月排行榜第二2009年1月 移动平台大版内专家分月排行榜第二
2011年12月 移动平台大版内专家分月排行榜第三2011年11月 移动平台大版内专家分月排行榜第三2011年9月 移动平台大版内专家分月排行榜第三2011年8月 移动平台大版内专家分月排行榜第三2010年3月 移动平台大版内专家分月排行榜第三2010年2月 移动平台大版内专家分月排行榜第三2009年4月 移动平台大版内专家分月排行榜第三2009年3月 硬件/嵌入开发大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。新浪微博开放平台SDK for .Net
-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
好消息,SDK已经添加了支持VS2008以及.net2.0/3.5的版本了
鉴于好多朋友对VS2008及.net2.0/3.5版本的SDK需求强盛,所以本次针对老版本重新编写了SDK的经典版。经典版使用JSON.Net作为反序列化的媒体,将官方API返回的JSON值转换为了实体类,方便老版本的.net 和vs调用。使用方法与.net 4.0版本的SDK一致,只是返回类型从dynamic变成了各种实体。&&&&&&
新增Entities命名空间
为了支持老版本.net新增了N个实体类型
使用JSON.net作为结果的反序列化载体(压缩包中已内置相应版本的JSON.net发行版)
与.net4.0版本相比API返回结果从dynamic变为class
目前为alpha版本,欢迎测试
新浪微博开放平台SDK for .Net 4.0+
SDK已经获得新浪微博官方支持,并加入了
下载中已提供Web及Winform的使用示例
为了方便各位初学者,视频教程已经发布,请不理解的朋友先看教程。
最近有朋友提出SDK的问题,但经过调试以后都找出了原因并解决了问题。为了让各位能更及时的反馈信息,本人开设了交流QQ群,有助于更好的交流和讨论有关SDK的话题。有需求的朋友可以加QQ群进行交流和沟通。
视频教程发布了
最近发现群里比较集中的问题在于应用的创建,AppKey和AppSecret的获取,以及怎么去绑定一个回调地址,还有就是怎么让DEMO程序正确的运行。这里为不是太清楚如何取得AppKey和AppSecret,以及不知道回调地址如何绑定的朋友准备了一个视频,按照视频的步骤,一般都不会再有啥问题,DEMO程序也是能够顺利运行的。请大家自行下载教程视频,&或者直接到。
现在新的SDK预览版已经发布了,V1版SDK停止更新!
新版SDK特性
授权方式升级为OAuth2.0
更新了API接口,与官方V2版API同步
第一步:授权认证
传统方式(适用于Web项目)
初始化OAuth类
获取Authorize地址
访问Authorize地址并进行授权,取得code
使用OAuth类的GetAccessTokenByAuthorizationCode方法获得AccessToken
模拟登录方式(适用于Winform项目和其他项目类型)
初始化OAuth类
调用OAuth类中的ClientLogin方法,传入账号、密码以及绑定回调地址(ClientLogin方法模拟了上述整个授权过程,实现一键登录和授权)
第二步:实例化操作类
至此,授权完成了。接下来用刚才的OAuth作为参数来实例化一个Client操作类。
Client实例化以后,通过API命名空间,即可调用各种方法。
V1版本SDK停止更新的说明
鉴于官方将在日关闭V1的API访问,所以老版本的SDK将不再更新。有需要的朋友可以自行到下载页面下载源代码和示例程序,但是在源码中不再提交更新。
人无完人,SDK中可能还存在着各种BUG,虽然基本的那几个接口我已经做过测试能够正常发送微博和图片,其他接口就没有那么多时间去一一测试了,如果你在使用这些接口的时候发现问题,请及时的联系我,以便修正,谢谢。
SDK中的各个接口命名基本和中的一致,我相信能够使用VS2010开发应用的各位使用起这个SDK来应该不会太大的困难。所有的方法分类和命名基本和官方保持一致,返回结果通过 DynamicJson把原始的JSON数据转换成了C#的dynamic类型,dynamic中的数据结构与官方文档一致,大家参照官方文档就可以方便的使用各个接口了。此外,使用方法在DEMO中都有示例,不明白的朋友可以下载示例来更好的了解和使用这个SDK。
项目主页:
相关资讯  — 
相关文档  — 
发布时间: 16:24:32
同类热门经验
23296次浏览
13610次浏览
21447次浏览
21268次浏览
16448次浏览
14604次浏览
OPEN-OPEN, all rights reserved.

我要回帖

更多关于 新浪微博oauth2.0认证 的文章

 

随机推荐