共80页: 首页 上一页 4 5 6 7 8 9 10 11 12 下一页 末页 
摘要: 最近同事用iOS App调用Open API时遇到一个问题:在access token过期后,用refresh token刷新access token时,服务器响应"invalid_grant"错误;而在access token没有过期的情况下,能正常刷新access token。先查看了一下OAuth规范中的“Refreshing an Expired Access Token”流程图,以确认客户端的操作流程有没有问题。阅读全文
posted @ 2015-08-16 22:12 dudu 阅读(5303) 评论(7) 编辑
摘要: 今天发现一个项目的git commit message中的单词拼错了,需要修改一下。但这样简单的修改,需要通过git rebase才能完成。首先要git rebase到需要修改message的那个commit的前1个commit。假设commit id是32e0a87f,运行下面的git rebase命令:git rebase -i 32e0a87f。在git bash中运行上面的命令后,会弹出编辑框阅读全文
posted @ 2015-08-05 17:09 dudu 阅读(7609) 评论(3) 编辑
摘要: 之前写过2篇关于refresh token的生成与持久化的博文。后来发现一个问题(这是遇到的第1个问题),在用户不登录的情况下,以client credentials grant方式获取access token时,也会生成refresh token并且保存至数据库。阅读全文
posted @ 2015-07-27 16:16 dudu 阅读(2759) 评论(11) 编辑
摘要: 在前一篇博文中,突发奇想地用文件存储实现了oauth refresh token的持久化。在这篇博文中,我们将面对现实地将文件存储改为数据库存储。既然软件开发中唯一不变的就是变化本身,那我们主动求变,用变化来验证代码的设计是否能随机应变。阅读全文
posted @ 2015-07-20 17:34 dudu 阅读(1635) 评论(13) 编辑
摘要: 使用nginx的反向代理功能搭建nuget镜像服务器时,需要针对官方nuget服务器的响应内容进行字符串替换,比如将www.nuget.org替换为镜像服务器的主机名,将https://替换为http://。而nginx没有内置这个功能,需要使用第三方module,比如subs_filter。阅读全文
posted @ 2015-07-19 16:11 dudu 阅读(7509) 评论(2) 编辑
摘要: 对于请求内容的http compression,.NET中的HttpClient并没有提供对压缩的内置支持,IIS也没有提供对解压的内置支持,需要自己写代码实现,本文也是由此而生。对于压缩与解压,System.IO.Compression中提供了对应的类库——GZipStream与DeflateStream,我们只需要在HttpClient与Web API中应用它们即可。阅读全文
posted @ 2015-07-17 17:33 dudu 阅读(5016) 评论(14) 编辑
摘要: 之前只是知道refresh token是用于刷新access token的,却不知道refresh token凭什么可以刷新access token?也就是知其然,不知其所以然。这是由于之前没有发现refresh token与access token有1个非常重要的区别——Refresh token只是一种标识,不包含任何信息;而access token是经过序列化并加密的授权信息,发送到服务器时,会被解密并从中读取授权信息。阅读全文
posted @ 2015-07-15 18:41 dudu 阅读(10881) 评论(33) 编辑
摘要: 在ASP.NET OWIN OAuth(Microsoft.Owin.Security.OAuth)中,access token 的默认加密方法是:1) System.Security.Cryptography.DpapiDataProtector.Protect();2) Convert.ToBase64String();3) .TrimEnd('=').Replace('+', '-').Replace('/', '_');阅读全文
posted @ 2015-07-14 23:30 dudu 阅读(5284) 评论(5) 编辑
摘要: 本以为搞定了 access token 就搞定了 Web API 的验证与授权问题,可是发现 OAuth 中还有一种 token,叫 refresh token。开始的时候很是纳闷,access token 已经能解决问题,为什么要搞定两套 token,refresh token 有啥用?在纳闷之下,发出了这样的感慨:既生 access token,何生 refresh token?阅读全文
posted @ 2015-07-13 17:12 dudu 阅读(30532) 评论(43) 编辑
摘要: 默认情况下,ASP.NET Web API不从Controller的注释中生成帮助文档。如果要将注释作为Web API帮助文档的一部分,比如在帮助文档的Description栏目中显示方法注释中的summary,需要进行一些配置操作。阅读全文
posted @ 2015-07-10 17:58 dudu 阅读(7841) 评论(13) 编辑
摘要: 之前只知道在同步方法中调用异步(async)方法时,如果用.Result等待调用结果,会造成线程死锁(deadlock)。自己也吃过这个苦头,详见等到花儿也谢了的await。昨天一个偶然的情况,造成在同步方法中调用了async方法,并且没有使用.Result,结果造成整个ASP.NET应用程序的崩溃,见识了同步/异步水火难容的厉害。阅读全文
posted @ 2015-07-08 12:57 dudu 阅读(7078) 评论(16) 编辑
摘要: Linux用的是Ubuntu,dnx版本是1.0.0-beta6-12120,EF版本是7.0.0-beta5。以下是用Entity Framework 7生成SQL Server数据库的操作步骤。在project.json中添加Entity Framework 7的引用。定义实体类。定义DbContext。在config.json中添加数据库连接字符串。在Startup.cs中加载config.json中的配置。阅读全文
posted @ 2015-07-05 11:55 dudu 阅读(2403) 评论(5) 编辑
摘要: 最近在测试一个第三方API,准备集成在我们的网站应用中。API的调用使用的是HttpClient,由于这个API会在关键业务中用到,对调用API的整体响应速度有严格要求,所以对HttpClient有了格外的关注。开始测试的时候,只在客户端通过HttpClient用PostAsync发了一个http post请求。阅读全文
posted @ 2015-07-03 12:37 dudu 阅读(35307) 评论(68) 编辑
摘要: 估计有1个月了,在mac上编译dnx从来没有成功过,因为在安装nuget packages时连接myget.org总是超时。今天在 ASP.NET 5 Beta5 Now Available 中得知 dnx 已经支持 NuGet v3 feed,而且说"Restoring packages using the new NuGet v3 feed is significantly faster"。于是将 dnx 中的 NuGet.Config 改为 v3 feed。阅读全文
posted @ 2015-07-01 23:24 dudu 阅读(2472) 评论(6) 编辑
摘要: Kestrel是目前在非Windows平台上运行ASP.NET 5应用程序的唯一可用Web服务器,但微软似乎将它冷落在一边,源代码更新很慢。今天试着在Linux上编译Kestrel的源代码,遇到了很多问题。在这篇博文中记录一下。阅读全文
posted @ 2015-06-30 21:01 dudu 阅读(2598) 评论(8) 编辑
摘要: 前几天在使用基于 mono 的 dnx 中的 dnu restore 命令安装 nuget 包包时,遇到了 “Cannot handle address family” 错误。在 github 上提交 issue 之后,从回复中得知这是 mono 的一个 bug,有人已经向 mono 提交了这个 bug。当时错误一直存在,怎么也无法完成 dnu restore 。后来,过了一段时间再操作,突然就好了。阅读全文
posted @ 2015-06-30 16:34 dudu 阅读(630) 评论(0) 编辑
摘要: 在Ubuntu上写好了一个简单的ASP.NET 5应用程序,尝试将这个程序部署在没有mono环境的CentOS服务器上。部署步骤如下:1)安装libuv;2)安装openssl;3)安装dnvm;4)用dnvm安装基于coreclr的dnx;5)用git签出ASP.NET 5应用程序的源代码;6)安装ASP.NET 5应用程序所需的nuget包包;7)通过dnx命令运行ASP.NET 5应用程序。阅读全文
posted @ 2015-06-29 12:00 dudu 阅读(1975) 评论(1) 编辑
摘要: ASP.NET 5 与之前的 ASP.NET 相比,有着翻天覆地的变化。了解与熟悉它需要一个过程,而我选择的了解方式是一步一步从无而有手写一个简单的 ASP.NET 5 程序,然后根据遇到的问题进行学习。这篇博文是关于静态文件(比如图片,css)处理的。阅读全文
posted @ 2015-06-28 16:39 dudu 阅读(1085) 评论(2) 编辑
摘要: 在 ASP.NET 5 中如果不进行显示错误信息的相关配置,在发生错误时,在浏览器中只能看到空白页面。配置方法如下:1)在 project.json 中添加对 Microsoft.AspNet.Diagnostics 的引用;2)在 Startup.cs 中添加 app.UseErrorPage() 。阅读全文
posted @ 2015-06-28 15:36 dudu 阅读(1366) 评论(1) 编辑
摘要: 在 Linux Ubuntu 服务器上用 dnx 基于 Kestrel 成功运行一个 ASP.NET 5 站点后,怎么也无无法退出。不管是按回车,还是按ctrl-C,还是按ctrl-Z。直接关闭客户端 ssh 窗口,命令依然在运行,站点依然可以正常访问。阅读全文
posted @ 2015-06-27 17:56 dudu 阅读(43545) 评论(0) 编辑
共80页: 首页 上一页 4 5 6 7 8 9 10 11 12 下一页 末页