成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

騰訊開放平臺中實現QQ登陸的功能

開發 開發工具
這昨天為自己的網站實現了QQ登陸的功能,雖然,沒有進行綁定,但是在技術層面上來說,已經了解了一點騰訊開放平臺的協議。

這昨天為自己的網站實現了QQ登陸的功能,雖然,沒有進行綁定,但是在技術層面上來說,已經了解了一點騰訊開放平臺的協議。

具體什么是OAUTH,請您GG一下吧...

 

關于騰訊的開放平臺,最主要的就是參數一定不能多,能有的要有,不能有的一定不能有.不然提交過去,就會提示什么什么錯了。

最關鍵的就是簽名的方式,下面就是我的簽名的代碼:

  1. /// <summary>  
  2.          /// 每一步不同的生成簽名的方式  
  3.          /// </summary>  
  4.          /// <returns></returns>  
  5.          protected virtual String BuildSignature(String SignatureHost)  
  6.          {  
  7.              String PostMethodString = "GET&";  
  8.              StringBuilder ParamString = new StringBuilder();  
  9.              this.CurrentStepParameters  
  10.                  .OrderBy(c => c.Key.ToString())  
  11.                  .ToList()  
  12.                  .ForEach(c =>  
  13.                          {  
  14.                              if (c.Key != OAuthParameterName.oauth_signature &&  
  15.                                  c.Key != OAuthParameterName.timestamp)  
  16.                              {  
  17.                                  if (ParamString.Length > 0)  
  18.                                  {  
  19.                                      ParamString.Append("&");  
  20.                                  }  
  21.                                  var p = c.Value;  
  22.                                  ParamString.Append(p.OAuthOringinaName);  
  23.                                  ParamString.Append("=");  
  24.                                  ParamString.Append(p.Value);  
  25.                              }  
  26.                          }  
  27.                  );  
  28.              StringBuilder SignData = new StringBuilder();  
  29.              SignData.Append(PostMethodString);  
  30.              SignData.Append(OAuthHelper.UrlEncode(SignatureHost));  
  31.              SignData.Append("&");  
  32.              SignData.Append(OAuthHelper.UrlEncode(ParamString.ToString()));  
  33.    
  34.              //密鑰  
  35.              String SecretKey = String.Format("{0}&{1}"this.AppKey, this.AuthorizedTokenKey);  
  36.              String SignContent = SignData.ToString();  
  37.              String Signature = Convert.ToBase64String(OAuthHelper.HMACSHA1Code(SignContent, SecretKey));  
  38.              return Signature;  
  39.          } 

這里的CurrentStepParameters是在構造方式里進行賦值,或者其它地方,簽名里最關鍵的,就是oauth_signature和timestamp這兩個參數,要記得去掉,在這里,我選擇了過濾。

因為有的時候,CurrentStepParameters這個字典從querystring來生成的話會簡單點還有能復用。

在所有參數中,有幾個是經常會用到的。

所以,在此我建立了一個通用參數生成方法。

  1. protected virtual void AddCommonParameters()  
  2.          {  
  3.              if (this.CurrentStepParameters != null)  
  4.              {  
  5.                  //增加通用參數  
  6.                  this.CurrentStepParameters.AddParam(OAuthParameterName.oauth_consumer_key, this.AppID);  
  7.                  this.CurrentStepParameters.AddParam(OAuthParameterName.oauth_nonce, DateTime.UtcNow.Ticks.ToString());  
  8.                  this.CurrentStepParameters.AddParam(OAuthParameterName.oauth_timestamp, OAuthHelper.GenerateTimestamp());  
  9.                  this.CurrentStepParameters.AddParam(OAuthParameterName.oauth_version, "1.0");  
  10.                  this.CurrentStepParameters.AddParam(OAuthParameterName.oauth_signature_method, "HMAC-SHA1");  
  11.                  this.CurrentStepParameters.AddParam(OAuthParameterName.oauth_client_ip, "1");  
  12.    
  13.                  if (this.CurrentStepParameters.ContainsKey(OAuthParameterName.oauth_token_secret))  
  14.                  {  
  15.                      this.AuthorizedTokenKey = CurrentStepParameters[OAuthParameterName.oauth_token_secret].Value;  
  16.                  }  
  17.    
  18.                  if (this.CurrentStepParameters.ContainsKey(OAuthParameterName.oauth_signature))  
  19.                  {  
  20.                      CurrentStepParameters.Remove(OAuthParameterName.oauth_signature);  
  21.                  }  
  22.    
  23.                  if (this.CurrentStepParameters.ContainsKey(OAuthParameterName.timestamp))  
  24.                  {  
  25.                      CurrentStepParameters.Remove(OAuthParameterName.timestamp);  
  26.                  }  
  27.              }  
  28.          } 

下面是一個測試地址:http://www.changshu.so/Tencent ,之后等完成綁定后,地址會刪除。

組件下載地址:http://files.cnblogs.com/sam251/CSCMS.Secrity.OAuth.rar 

后續還有綁定的需要自己去實現了。如果能有通用的方式,我會定時更新,另外,其它OAUTH,比如SINA的,正在研究。

本程序里的OAuthHelper.GenerateTimestamp()及OAuthHelper.UrlEncode都是來自網上其它朋友的方法。

源不源碼也沒有什么重要了。因為整合在自己的網站里,所以,只是給出了一個DLL,要源碼的可以找我,我可以發你。

原文鏈接:http://www.cnblogs.com/sam251/archive/2011/09/15/oauth_tencent.html

【編輯推薦】

  1. 騰訊微博開放平臺正式推出LBS接口
  2. 國內開放平臺誰將***個死去?
  3. 盛大開放平臺案例:PHPCMS
  4. 淘寶開放平臺案例:卷豆網
  5. 騰訊開放平臺案例:游戲谷
責任編輯:林師授 來源: 小宇.net的博客
相關推薦

2011-12-08 15:33:25

騰訊微博開放平臺

2013-01-04 17:44:59

2011-07-20 09:27:37

Scala

2009-02-20 14:54:33

SNS

2011-12-13 15:35:54

騰訊開放平臺

2011-12-08 15:54:03

騰訊開放平臺

2014-11-28 15:41:29

.NET

2011-12-13 15:45:39

2011-06-15 10:00:48

騰訊頁游《七雄爭霸》將

2013-12-13 13:54:05

移動應用

2014-11-18 15:05:50

QQ

2014-12-02 10:22:38

騰訊云微信開放平臺云分析

2010-08-18 08:21:49

Adobe AIRAndroid

2011-05-31 10:26:37

Android 對話框

2014-01-17 13:59:14

騰訊開放平臺

2012-06-06 16:17:27

Windows 8 RQQ應用

2009-07-16 15:14:27

WebWork用戶登陸

2015-03-16 11:24:01

阿里云騰訊云云計算

2009-01-12 17:34:11

服務器虛擬化VMware

2014-01-22 10:35:58

應用寶開放平臺
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日日夜夜精品视频 | 亚洲国产成人精品女人 | 日韩国产欧美 | 99久久精品国产一区二区三区 | 日韩一区二区三区在线视频 | 亚洲一区二区日韩 | 国产一区二区三区四区 | 久久久久久国产精品 | 久久久久久成人 | 一二三区av | 亚洲网址在线观看 | 国产精品黄视频 | 国产精品欧美一区二区三区不卡 | 午夜视频在线观看网址 | 一呦二呦三呦国产精品 | 久久综合欧美 | 日韩欧美天堂 | 欧美久久一区二区 | 在线中文视频 | 日韩一区二区在线视频 | 亚洲日韩第一页 | 天天干天天爱天天爽 | 精品久久久久久久久亚洲 | 久久九| 91精品国产一区二区 | 日韩精品在线看 | 成人久久18免费网站 | 国产精品久久久久久久久婷婷 | 999国产精品视频 | 六月成人网 | 精品一区二区三区在线观看国产 | 热久久999 | 国产精品视频一区二区三区 | 91超碰在线 | 久久精品福利 | 欧美另类视频 | 精品影院 | 福利视频网 | 一级毛片大全免费播放 | 台湾佬伊人 | 黄 色 毛片免费 |