在ASP.NET MVC5应用程序中快速接入QQ和新浪微博OAuth起步创建应用程序使用NUGET更新OWIN中间件启动SSL支持申请腾讯QQ的Oauth申请新浪微博的Oauth快速接入资源地址&源码

这篇文章演示如何在你的ASP.NET MVC5应用程序中支持用户使用腾讯QQ和新浪微博的open authentication。

起步

安装Visual studio 2013 higher或者Visual studio express 2013 for web就不再赘述了,点击这里下载。

创建应用程序

打开vs,在Template中选择C#->asp.net web application ,命名为OauthDemo,并点击OK

在弹出窗口中选择MVC template,并且选择“Change authentication”选择Indivdula user Accounts

使用NUGET更新OWIN中间件

在Project Explorer中右键点击项目,选择”Manage Nuget Packages”,左边栏中选择Updates,然后点击右边的Update all,如果你没有发现Update all,说明你现在的包都是最新的(又或者是你人在中国,说知道呢…)

同样,在package manager console中,你也可以通过键入Update-package命令来更新所有的包

此时,点击F5应该可以执行你的应用程序,因为我们还没有做任何开发工作。

启动SSL支持

在几乎所有的Oauth提供商都要求接入的应用程序支持SSL连接,所以你需要启动IIS-express中SSL的支持。

在Solution Explorer中,点击MvcAuth,在属性窗口中(如果你没有看见,需要从菜单栏的Views中打开它),选择SSL Enabled为True

复制ssl的url,打开项目属性页面,选择Web选项卡,将地址拷贝到Project URL中并保存。

然后再HomeController上添加RequireHttps标签

[RequireHttps]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

此时重新启动应用程序,可能会得到一个警告,选择Yes并安装提示的证书就好了。

申请腾讯QQ的Oauth

1. 打开网址http://connect.qq.com/,或者http://connect.qq.com/intro/login

2. 登陆你的QQ账号,并点击QQ登陆->申请加入

3. 打开页面中,创建页面,并根据要求填写信息

这里比较麻烦的是,腾讯需要验证你输入的网址是否是你自己所有的,所以你需要有一个自己的域名,这里不要尝试修改host的方法,腾讯是后台验证的,所以没有什么卵用。

4.在创建好以后,在管理中心页面,就可以看到你的App id和app key啦

申请新浪微博的Oauth

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/

https://github.com/xiaoyaojian/OwinOAuthProvider

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

手把手教你搭建个人网站五:WordPress搬家&备份

建好基于WordPress的个人网站后,如果我们想整个搬到另一个服务器,应该怎么弄呢?为了预防不可预知情况的发生,我们又该如何备份网站信息呢? ? 备份Word...

3488
来自专栏云计算教程系列

使用SmokePing监控你的服务器

SmokePing是一款监控网络状态和稳定性的开源软件(它是rrdtool的作者开发的),通过它可以监控到公司IDC的网络状况,如延时,丢包率,是否BGP多线等...

2585
来自专栏bboysoul

解决因为ssh秘钥权限问题导致的Connection closed by 192.168.1.31 port 2222

事情是这样的, 其实是gitlab上不能使用ssh去拉取代码,我一直以为是防火墙的问题,后来测试端口是开着的,但是就是一直连接拒绝,所以这个就很蛋疼,后来才想到...

642
来自专栏魏艾斯博客www.vpsss.net

WordPress 批量替换 url 插件 Velvet Blues Update URLs 安装使用

我们经常遇到 wordpress 要批量修改一些 url 之类的,可以用 phpmyadmin 操作,不过稍显麻烦不适合新手,也可以使用插件操作,用完了删除就是...

41610
来自专栏软件开发

Maven快速学习教程

在开发中经常需要依赖第三方的包,包与包之间存在依赖关系,版本间还有兼容性问题,有时还里要将旧的包升级或降级,当项目复杂到一定程度时包管理变得非常重要。

1274
来自专栏信安之路

Oauth协议介绍与安全隐患

OAuth 是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。目前,...

700
来自专栏友弟技术工作室

如何在CLI上管理密码

基于密码的认证在网络盛行的今天,你可能需要或者已经使用了某种密码管理工具来跟踪管理你正在使用的所有密码。有各种各样的在线或离线服务或者软件工具用于完成此类事情,...

36511
来自专栏拂晓风起

jira 3.13.5版 安装 配置 用户权限控制

963
来自专栏c#开发者

Updater application block 2.1使用和扩展

Updater application block 2.1使用和扩展 概述 Updater application block简称UAB,是Microsof...

2443
来自专栏木子昭的博客

搬瓦工&极路由(ssh,scp最佳实战案例)

关于搬瓦工 ? 搬瓦工 最近往搬瓦工主机部署项目,而搬瓦工的默认登录端口号并非22号(我的是28208) 正确登录方式(以28208端口为例) ssh...

3086

扫码关注云+社区