OAuth:第一天学习OAuth
收集的一些资料
http://baike.baidu.com/view/3948029.htm。
使用百度的OAuth服务进行测试
代码下载:http://yunpan.cn/QtNuCR9I4jDz8。
html代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="OAuthoStudy.Index" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="Javascript/Ext/ext-all-debug.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<button id="GetCode">获取授权码</button>
授权码:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="获取用户信息" />
</div>
</form>
</body>
</html>
<script type="text/javascript">
Ext.get('GetCode').on('click', function (e) {
var url = 'https://openapi.baidu.com/oauth/2.0/authorize';
var params = {
response_type: 'code',
client_id: 'hdFhQoUiu9GdeqBzPStXf9li',
redirect_uri: 'oob',
scope: 'basic',
state: '段光伟',
display: 'page'
}; window.open(url + '?' + Ext.urlEncode(params), '_blank', "width=800,height=600"); e.stopEvent();
});
</script>
后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net;
using Newtonsoft.Json; namespace OAuthoStudy
{
public partial class Index : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
var access_token = this.GetAccessToken();
WebRequest request = WebRequest.Create("https://openapi.baidu.com/rest/2.0/passport/users/getInfo?access_token=" + access_token); var response = request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
dynamic data = JsonConvert.DeserializeObject(sr.ReadToEnd()); this.Response.Write("欢迎您:" + data.username);
} private string GetAccessToken()
{
WebRequest request = WebRequest.Create("https://openapi.baidu.com/oauth/2.0/token?client_id=hdFhQoUiu9GdeqBzPStXf9li&client_secret=NLzxHLzbWn2XGZrQbsfuG3lBYX5tcBHZ&grant_type=authorization_code&code=" + this.TextBox1.Text + "&redirect_uri=oob"); var response = request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
dynamic data = JsonConvert.DeserializeObject(sr.ReadToEnd()); return data.access_token.ToString();
}
}
}
运行效果
备注
OAuth的主要作用应该是授权,具体还要继续思考。
OAuth:第一天学习OAuth的更多相关文章
- OAuth 2.0学习笔记
文章目录 OAuth的作用就是让"客户端"安全可控地获取"用户"的授权,与"服务商提供商"进行互动. OAuth在"客户端&quo ...
- 认证授权:学习OAuth协议
1.什么是OAuth协议? OAUTH协议为用户资源的授权提供了一个安全的.开放而又简易的标准.同时,任何第三方都可以使用OAuth认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因而OA ...
- 学习OAuth 2.0
认识OAuth 2.0 OAuth 2.0 是行业标准的授权协议. OAuth 2.0 专注于客户端开发人员的简单性,同时为 Web 应用程序.桌面应用程序.移动设备提供特定的授权流程. 应用场景 有 ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20135328信息安全系统设计基础第一周学习总结(Linux应用)
学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/ ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第一周学习总结
20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大 ...
- 《jave程序设计》第一周学习总结
<JAVA程序设计>第一周学习总结 教材学习内容总结 在第一周的学习中,我初次认识了JAVA程序的一些基础知识.我发现了很多问题 问题就是自己的代码编写出现了一点问题,符号和单词的大小写都 ...
随机推荐
- HDU 2102 A计划(BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102 题目大意:公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输 ...
- TCP封包解包---如有错误,请纠正!
最近遇见很多的关于TCP中封包解包的数据,在TCP节点之间的信息传递,每次传送的内容是结构体,所以每次在传送的时候,要将结构体中的数据进行封包,然后当一端接收到数据之后,要对接收到的buf参数中的数据 ...
- Linux 基础——权限管理命令chown、chgrp
一.chown命令与chgrp命令的作用 有时你需要改变文件或目录的属主,比如有人离职或开发人员创建了一个在测试或生产环境中需要归属在系统账户下的应用.Linux提供了两个命令来实现这个功能:chow ...
- MVC – 5.MVC设计模式和.NetMVC框架
MVC模式-设计模式 •控制器(Controller)- 负责转发请求,对请求进行处理. •视图 (View) - 界面设计人员进行图形界面设计. •模型 (Model)-业务逻辑.数据.验证规则.数 ...
- 05 java 基础:运算符、程序结构
赋值运算符 : = 三元运算符 : ? 算术运算符 : +.- .*./.% 自增自减运算符: ++.-- 关系运算符:>.<.==.>=.<=.!= 逻辑运算符 :& ...
- 【Java】Java中常用的String方法
本文转载于:java中常用的String方法 1 length()字符串的长度 String a = "Hello Word!"; System.out.println(a.len ...
- 牛客网 牛客练习赛43 C.Tachibana Kanade Loves Review-最小生成树(并查集+Kruskal)+建虚点+读入挂
链接:https://ac.nowcoder.com/acm/contest/548/C来源:牛客网 Tachibana Kanade Loves Review 时间限制:C/C++ 2秒,其他语言4 ...
- 解决引入keras后出现的Using TensorFlow backend的错误
在引入头文件之后,加入 import os os.environ['KERAS_BACKEND']='tensorflow' 就可以完美解决这个问题
- async await 使用笔记
JavaScript的网络请求异步的,即网络请求不会阻塞当前 js 代码的继续执行,而是通过回调的方式,网络请求的代码块中注入回调函数,当网络请求完成,会触发相应的事件,通过触发事件来执行注册的回调函 ...
- FastReport.Net使用:[11]公共对象属性介绍
公共对象属性介绍 1.Left(左),Top(上),Height(高度),Width(宽度) Left和Top,用来控制对象的位置:Height和Width用来控制对象的大小. 2.Anchor(基准 ...