這篇文章演示如何在你的ASP.NET MVC5應用程序中支持用戶使用騰訊QQ和新浪微博的open authentication。git
安裝Visual studio 2013 higher或者Visual studio express 2013 for web就再也不贅述了,點擊這裏下載。github
打開vs,在Template中選擇C#->asp.net web application ,命名爲OauthDemo,並點擊OKweb
在彈出窗口中選擇MVC template,而且選擇「Change authentication」選擇Indivdula user Accountsexpress
在Project Explorer中右鍵點擊項目,選擇」Manage Nuget Packages」,左邊欄中選擇Updates,而後點擊右邊的Update all,若是你沒有發現Update all,說明你如今的包都是最新的(又或者是你人在中國,說知道呢…)瀏覽器
一樣,在package manager console中,你也能夠經過鍵入Update-package命令來更新全部的包app
此時,點擊F5應該能夠執行你的應用程序,由於咱們尚未作任何開發工做。asp.net
在幾乎全部的Oauth提供商都要求接入的應用程序支持SSL鏈接,因此你須要啓動IIS-express中SSL的支持。dom
在Solution Explorer中,點擊MvcAuth,在屬性窗口中(若是你沒有看見,須要從菜單欄的Views中打開它),選擇SSL Enabled爲Trueide
複製ssl的url,打開項目屬性頁面,選擇Web選項卡,將地址拷貝到Project URL中並保存。測試
而後再HomeController上添加RequireHttps標籤
[RequireHttps] public class HomeController : Controller { public ActionResult Index() { return View(); }
此時從新啓動應用程序,可能會獲得一個警告,選擇Yes並安裝提示的證書就行了。
1. 打開網址http://connect.qq.com/,或者http://connect.qq.com/intro/login
2. 登錄你的QQ帳號,並點擊QQ登錄->申請加入
3. 打開頁面中,建立頁面,並根據要求填寫信息
這裏比較麻煩的是,騰訊須要驗證你輸入的網址是不是你本身全部的,因此你須要有一個本身的域名,這裏不要嘗試修改host的方法,騰訊是後臺驗證的,因此沒有什麼卵用。
4.在建立好之後,在管理中心頁面,就能夠看到你的App id和app key啦
1. 打開網址http://open.weibo.com/,並登陸你的微博帳號。
2. 在「微連接」->」網站接入「中,點擊」當即接入」
3.一樣按照要求輸入內容,新浪也要求驗證你的域名全部權,因此折騰去吧。
4.建立完成後,在「個人應用」裏就能夠看到了,打開你建立的應用,在測試帳號中輸入本身的帳號,由於沒有認證的帳號是不容許進行開發和測試的登錄的
5.在「藉口管理」->「受權機制」中,輸入回調地址「https://www.yourdomain.xx/sign-in」
6.最後在「網站信息」->「基本信息」中,能夠查看到app id 和app secert:
1. 在Package manager console中,鍵入如下兩個命令添加對騰訊QQ和新浪微博的oauth provider
Install-Package Microsoft.Owin.Security.Sina
Install-Package Microsoft.Owin.Security.Tencent
結果如圖所示:
2. 打開App_Start目錄下的Startup.Auth.cs文件,在文件頂部添加如下命名空間:
using Microsoft.Owin.Security.Tencent; using Microsoft.Owin.Security.Sina;
3. 在app.UseExternalSignInCookie(…的調用後,添加如下兩行代碼,從而添加應用程序對騰訊QQ和新浪微博oauth的支持:
app.UseTencentAuthentication("101224440", "***************************************"); app.UseSinaAuthentication("2522592830", "******************************************");
4. 如今不能夠經過支持按下F5來測試結果,由於各個oauth提供商會驗證和調用你在上一節中設置的域名是否正確,有兩種方法能夠作到這一點,第一就是直接將程序部署而且解析域名,這種方式明顯不適合開發;第二種方法也是接下來要使用的方法,將程序部署在本地IIS而且修改host文件。
打開IIS,建立應用程序,指向當前項目的根目錄
然後修改host文件,添加如下內容:
127.0.0.1 www.yourdomain.xx
最後,編譯你的應用程序,瀏覽器打開https://www.yourdomain.xx,點擊」Login「,就能夠在右側看到添加的兩個oauth provider啦:
https://www.nuget.org/packages/Microsoft.Owin.Security.Sina/
https://www.nuget.org/packages/Microsoft.Owin.Security.Tencent/