千家信息网

NET类库封装该如何理解

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章跟大家分析一下"NET类库封装该如何理解"。内容详细易懂,对"NET类库封装该如何理解"感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习
千家信息网最后更新 2026年11月01日NET类库封装该如何理解

这篇文章跟大家分析一下"NET类库封装该如何理解"。内容详细易懂,对"NET类库封装该如何理解"感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习"NET类库封装该如何理解"的知识吧。

目前开放OAuth3互联接口比较常用的有新浪微博,腾讯QQ,淘宝,其实还有微信,只是微信的我木有申请下来,因为手续麻烦,貌似需要扫描它的协议签字然后发过去,所以就放弃封装微信OAuth3登陆接口了,待以后给补上!关于淘宝OAuth网站接入登陆目前淘宝是暂停审核了貌似,也许是因为财大气粗比较任性吧,不过你还是可申请账号的,可以做应用提交给淘宝。

一。 下面给出各个OAuth3.0申请合作的地址:

-- sinaweibo OAuth3.0 --

申请接入OAuth3合作地址:http://open.weibo.com (微博.开放平台)
授权Url: https://api.weibo.com/oauth3/authorize?client_id=你的ClientId&redirect_uri=你的回调Url&response_type=code&display=default%20&state=sinaweibo

-- qq OAuth3.0 --

申请接入OAuth3合作地址: http://connect.qq.com (所谓的QQ互联,貌似还有一个http://open.qq.com,但这个我还木有用过,就先用QQ互联吧反正是可以登陆)
授权Url: http://openapi.qzone.qq.com/oauth/show?which=Login&display=pc&client_id=你的ClientId&redirect_uri=你的回调Url&response_type=code&display=default%20&state=qq

-- taobao OAuth3.0 --

申请接入OAuth3合作地址:http://open.taobao.com/index.htm
授权Url: https://oauth.taobao.com/authorize?client_id=你的ClientId&redirect_uri=你的回调Url&response_type=code&display=default%20&state=taobao

-- WeiXin OAuth3.0 --

申请接入OAuth3合作地址:https://open.weixin.qq.com

下面开始给dotNET平台的小伙伴们发福利啦,封装了一个类实现了接入到新浪微博,腾讯QQ,淘宝,和获取用户信息,就实现了下面的2个接口,分别是IOAuthClient和IUserInterface。

namespace GeRenXing.OpenPlatform {     public interface IOAuthClient     {         AuthOption Option { get; }         AuthToken Token { get; }         IUserInterface User { get; }           String GetAuthorizeUrl(ResponseType responseType);         AuthToken GetAccessTokenByAuthorizationCode(string code);         AuthToken GetAccessTokenByPassword(string passport, string password);         AuthToken GetAccessTokenByRefreshToken(string refreshToken);         String Get(String url, params RequestOption[] options);         String Post(String url, params RequestOption[] options);     } }

需要封装更多api的请自行扩展,也可以直接调用IOAuthClient的Get和Post方法直接传递参数快速访问api。

新浪微博和淘宝在获取Token的时候就把OpenId直接返回给你了,而腾讯QQ的OAuth3.0接入里获取Token是不会返回OpenId的,需要单独访问https://graph.qq.com/oauth3.0/me获取OpenId,对于这个不同点我在封装的腾讯QQ ParseAccessToken 方法里面已经自动处理了,就是再次发起了一次获取用户Open Id的请求。

各位小伙伴注意啦:访问授权Url返回的Code码只能使用一次,否则会报下面这个错误:

{"error":"invalid_grant","error_code":21325,"request":"/oauth3/access_token","error_uri":"/oauth3/access_token","error_description":"invalid authorization code:2c2cb4e1f6b70650acbe1dad757ea6bb"}

二。 下面做了个测试的控制台程序,ClientId和ClientSecret,CallbackUrl请改为自己的。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics;   using GeRenXing.OpenPlatform;   namespace GeRenXing.OpenPlatform.Test {     class Program     {         private static Dictionary m_oauthClients;         static void Main(string[] args)         {             //初始化开放平台客户端(请替换成自己的ClientId,ClientScrert,CallbackUrl)             m_oauthClients = new Dictionary();             m_oauthClients["sinaweibo"] = new OpenPlatform.OAuthClient.SinaWeiBoClient("You ClientId", "You ClientScrert", "You Callback Url");             m_oauthClients["qq"] = new OpenPlatform.OAuthClient.TencentQQClient("You ClientId", "You ClientScrert", "You Callback Url");             m_oauthClients["taobao"] = new OpenPlatform.OAuthClient.TaoBaoClient("You ClientId", "You ClientScrert", "You Callback Url");               //测试             OAuthTest("sinaweibo");             //OAuthTest("qq");             //OAuthTest("taobao");               Console.ReadKey(true);         }           private static void OAuthTest(String platformCode)         {             String authorizeUrl = String.Empty;             if (String.IsNullOrEmpty(platformCode)) platformCode = "sinaweibo";               Console.WriteLine("OpenPlatform Request For " + platformCode);             Console.WriteLine("");               IOAuthClient oauthClient = m_oauthClients[platformCode];             oauthClient.Option.State = platformCode;               //***步:获取开放平台授权地址             authorizeUrl = m_oauthClients[platformCode].GetAuthorizeUrl(ResponseType.Code);             Console.WriteLine("Step 1 - OAuth3.0 for Redirect AuthorizeUrl: ");             Console.WriteLine(authorizeUrl);               //第二步:打开IE浏览器获取Code             Process p = new Process();             ProcessStartInfo psi = new ProcessStartInfo();             psi.Arguments = authorizeUrl;             psi.FileName = "C:\\Program Files\\Internet Explorer\\iexplore.exe";             p.StartInfo = psi;             p.Start();               Console.WriteLine("");             Console.WriteLine("OAuth3.0 Input Server Response Code");             String code = Console.ReadLine();               //第三步:获取开放平台授权令牌             oauthClient = m_oauthClients[platformCode];             AuthToken accessToken = oauthClient.GetAccessTokenByAuthorizationCode(code);             if (accessToken != null)             {                 Console.WriteLine("");                 Console.WriteLine("Step 2 - OAuth3.0 for AccessToken: " + accessToken.AccessToken);                 //输出原始响应数据                 Console.WriteLine("GetAccessToken Raw Response : ");                 Console.WriteLine(oauthClient.Token.TraceInfo);                   //第四步:调用开放平台API,获取开放平台用户信息                 dynamic oauthProfile = oauthClient.User.GetUserInfo();                   //输出解析出来的用户昵称                 Console.WriteLine("");                 Console.WriteLine("Step 3 - Call Open API UserInfo: ");                 Console.WriteLine("UserInfo Nickname: " + oauthClient.Token.User.Nickname);                 //输出原始响应数据                 Console.WriteLine("GetUserInfo Raw Response : ");                 Console.WriteLine(oauthClient.Token.TraceInfo);             }         }     } }

三。 下面给出几张测试的截图:

SianWeiBo Oauth3.0
++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++
QQ OAuth3.0
++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++
TaoBao OAuth3.0
++++++++++++++++++++++++++++++++++++++++++++++++++++

关于NET类库封装该如何理解就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下网站!

封装 平台 开放 接入 地址 淘宝 合作 用户 腾讯 接口 新浪 互联 测试 登陆 输出 原始 信息 内容 小伙 小伙伴 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 互联网佳科技有限公司 互联网巨头科技公司 互联网公司 科技公司 大白互联网科技 中国互联网有什么科技含量 互联网系的金融科技公司 受益于互联网科技的高速发展 互联网金融中的现代科技 语蝶互联网科技有限公司 乌苏新华互联网科技做什么的 互联网科技人工智能实验室 晋城互联网科技 区块链结合互联网科技 互联网金融科技元年 城市宝互联网科技有限公司 互联网界的黑科技 中国科技和美国互联网 马化腾互联网科技教学 深圳互联网科技园地址 百单网互联网科技有限公司 苏州找大状互联网科技有限公司 互联网科技工作委员会副主任毛军 互联网科技集团 互联网科技大会 无锡工业互联网科技有限公司 互联网企业科技类企业如何做账 梅州GM互联网络科技有限公司 云南省自由互联网科技有限公司 本届互联网大会上的黑科技
0