上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 85 下一页
摘要: 在前一篇博文中,我们使用OAuth的Client Credential Grant授权方式,在服务端通过CNBlogsAuthorizationServerProvider成功发放了Access Token,在客户端也成功拿到了Access Token。那Access Token有什么用呢?在OAuth中对Resource Server访问权限的验证都是基于Access Token。不管是什么样的客户端,Resource Server铁面无私,只认Access Token。 阅读全文
posted @ 2015-06-12 23:13 dudu 阅读(25314) 评论(30) 推荐(20) 编辑
摘要: OAuth真是一个复杂的东东,即使你把OAuth规范倒背如流,在具体实现时也会无从下手。因此,Microsoft.Owin.Security.OAuth应运而生,帮助开发者偷了不少工,减了不少料。这篇博文试图通过一个简单的示例分享一下如何基于Microsoft.Owin.Security.OAuth,使用Client Credentials Grant授权方式给客户端发放access token。 阅读全文
posted @ 2015-06-11 22:54 dudu 阅读(28046) 评论(36) 推荐(27) 编辑
摘要: 最近在改进园子的图片上传程序,希望实现用户上传图片时同时将图片文件保存在三个地方:1)服务器本地硬盘;2)又拍云;3)阿里云OSS。并且在保存时使用异步操作。对于异步保存到本地硬盘,只需用 Steam.CopyToAsync() 将上传文件流异步复制到 FileStream 即可。对于异步保存至又拍云,只要借助 WebRequest.GetRequestStreamAsync() + Steam.CopyToAsync() 就可以实现。 阅读全文
posted @ 2015-06-08 22:57 dudu 阅读(8184) 评论(17) 推荐(9) 编辑
摘要: GitLab的数据库用的是PostgreSQL,之前由于阿里云RDS不支持PostgreSQL,只能将GitLab的数据库部署在云服务器上。6月1日得知阿里云推出了PostgreSQL RDS,于是立马将GitLab的数据库迁移至PostgreSQL RDS。下面分享一下迁移的主要操作步骤。 阅读全文
posted @ 2015-06-02 12:19 dudu 阅读(4121) 评论(3) 推荐(0) 编辑
摘要: 这两天尝试在Mac/Linux/Windows三大平台上编译.NET跨平台三驾马车(coreclr/corefx/dnx)之一的corefx(.NET Core Framework),结果三个平台的编译都失败了。后来一一都解决了,在这篇博文中分享一下。 阅读全文
posted @ 2015-05-31 12:18 dudu 阅读(2628) 评论(3) 推荐(1) 编辑
摘要: DNX的全称是.NET Execution Enviroment(.NET执行环境),它是.NET跨平台的一个重要角色。如果你关注.NET的跨平台,一定要关注DNX。在mac上用自己编译出的dnx运行.NET程序,一是可以实际体会一下.NET跨平台的进展,二是可以随时折腾dnx,改改dnx的代码,编译出来就可以用它跑.NET程序。 阅读全文
posted @ 2015-05-26 12:37 dudu 阅读(4529) 评论(10) 推荐(2) 编辑
摘要: 在Mac上用最新版的dnx 1.0.0-beta5-11855进行dnu restore,出现下面的错误:Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies。在 ~/.dnx/runtimes/dnx-mono.1.0.0-beta5-11855/bin 文件夹中找到了dnu文件,原来是一个shell文件。 阅读全文
posted @ 2015-05-25 14:29 dudu 阅读(1586) 评论(0) 推荐(0) 编辑
摘要: 自从XRE改名为DNX到至今,从来没有在Mac OS X上成功编译过。一直很纳闷,难道DNX的开发人员不用Mac?今天突然明白了,DNX的开发人员真的不用Mac。而且DNX用的2个持续集成服务AppVeyor与Travis,一个是Windows环境,一个是Linux环境,就是没有Mac OS X环境。 阅读全文
posted @ 2015-05-20 23:24 dudu 阅读(1460) 评论(2) 推荐(1) 编辑
摘要: 这2天实际开发中明确的东西,在这篇博文中记录一下。之前对是否需要自己封装UnitOfWork有些犹豫,因为Entity Framework就是一个UnitOfWork实现, 自己再封装一下显得有些多余。但是在这次开发中,把涉及数据库操作的实现代码放在最后写,先完成其他层的代码。这种情况下,根本用不了EF,只能先Fake出一个UnitOfWork,这时必须要进行UnitOfWork的封装。 阅读全文
posted @ 2015-05-19 20:46 dudu 阅读(1871) 评论(6) 推荐(3) 编辑
摘要: 在C#/.NET中,将文本内容写入文件最简单的方法是调用 File.WriteAllText() 方法,但这个方法没有异步的实现,只能改用有些复杂的 FileStream.WriteAsync() 方法。使用 FileStream.WriteAsync() 有2个需要注意的地方,1是要设置bufferSize,2是要将 useAsync 这个构造函数设置为true。 阅读全文
posted @ 2015-05-18 15:29 dudu 阅读(4901) 评论(0) 推荐(1) 编辑
摘要: 将登录页面由form提交改为ajax提交,发现一个副作用——登录时浏览器不会提示是否保存密码,这样每次登录都要输入用户名/密码。这个副作用让人甚是郁闷。后来揣摩了一下,估计浏览器是根据表单提交事件来决定是否提示保存密码。试试欺骗一下浏览器,有form,有submit按钮,但在onsubmit时return false。 阅读全文
posted @ 2015-04-08 15:55 dudu 阅读(3888) 评论(5) 推荐(1) 编辑
摘要: GitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器。发现它之后,立即决定将Git服务器换成GitLab。但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入到GitLab,之前的Git服务器是由是git+apache搭建的。在网上发现了一篇文档,并按之进行了操作。 阅读全文
posted @ 2015-03-17 10:45 dudu 阅读(26630) 评论(3) 推荐(0) 编辑
摘要: DNX是.NET Execution Environment,前身是XRE,XRE的前身是KRuntime,项目网址:https://github.com/aspnet/DNX 。出错是因为找不到kpm命令。已经在github上针对这个问题提交了issue,等这个问题解决后再继续编译。 阅读全文
posted @ 2015-03-14 18:05 dudu 阅读(1827) 评论(0) 推荐(0) 编辑
摘要: 起步只有3个文件:CoreRun.exe, coreclr.dll, mscorlib.dll, HelloWorld.exe。运行命令:CoreRun HelloWorld.exe。启动Visual Studio进行调试,发现是因为少了mscorrc.debug.dll这个文件。将mscorrc.debug.dll复制过来,继续运行,出现下面的错误。需要System.Console程序集,将之从corefx编译出来的程序集中复制过来。 阅读全文
posted @ 2015-03-11 12:19 dudu 阅读(1876) 评论(7) 推荐(0) 编辑
摘要: C#测试代码;代码编译;在没有实现managed exception handling时的运行结果;在初步实现managed exception handling后的运行结果。对应的git提交:Implement basic support for managed exception handling。 阅读全文
posted @ 2015-03-04 12:05 dudu 阅读(719) 评论(0) 推荐(0) 编辑
摘要: 之前写过一篇关于CentOS更改主机名的随笔,搞得很复杂,详见修改阿里云CentOS Linux服务器的主机名。今天在askubuntu上发现一个很简单的方法(How do I change the hostname without a restart?),只需使用hostnamectl命令:hostnamectl set-hostname 新主机名 。找出更简单的方法解决问题,也是技术人员的一种乐趣。 阅读全文
posted @ 2015-02-26 18:19 dudu 阅读(3643) 评论(2) 推荐(0) 编辑
摘要: 有了stack unwinding特性,才能在.NET程序中获取调用堆栈(call stack)信息,才能在异常时显示调用堆栈信息。这个特性之前只在Windows上有实现,Linux/Mac上的实现最近才刚刚添加,今天才被合并到主分支。 阅读全文
posted @ 2015-02-21 16:30 dudu 阅读(858) 评论(2) 推荐(1) 编辑
摘要: 经过几天的努力,终于解决了在CentOS上编译CoreCLR的问题。最终发现问题是CMAKE_C_FLAGS的设置引起的。只要在src/pal/tools/clang-compiler-override.txt中删除一行配置,在src/pal/tests/CMakeLists.txt中添加一行配置,就能编译了。下面分享一下在CentOS上编辑CoreCLR的配置步骤。 阅读全文
posted @ 2015-02-19 22:11 dudu 阅读(2880) 评论(15) 推荐(0) 编辑
摘要: 编译CoreCLR需要Clang 3.5,而CentOS上安装的是Clang 3.4.2(yum repos中最新版也是这个),只能自己手工编译LLVM的源代码进行安装。CentOS的版本是6.6。一、安装libstdc++4.7;二、安装Python 2.7.9;三、编译LLVM。 阅读全文
posted @ 2015-02-18 10:08 dudu 阅读(21444) 评论(0) 推荐(2) 编辑
摘要: CentOS 6.6自带的是Python 2.6.6,而编译llvm时需要Python 2.7以上。yum中最新的也是Python 2.6.6,只能下载Python 2.7.9的源代码自己编译安装。操作步骤如下:1)安装devtoolset;2)安装编译Python需要的包包;3)下载并解压Python 2.7.9的源代码。 阅读全文
posted @ 2015-02-16 16:10 dudu 阅读(56389) 评论(1) 推荐(5) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 85 下一页