Microsoft ASP.NET Core 权限提升漏洞(CVE-2017-11879)
BUGTRAQID:101713CVE(CAN)ID:CVE-2017-11879ASP.NETCore是一个新的开源和跨平台的框架,用于构建如Web应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。ASP.NETCore在实现上存在开放重定向漏洞,攻击者发送构造的URL,利用此漏洞可提升其权限。<*来源:KévinChalet链接:http://technet.microsoft.com/security/bulletin/November2017SecurityUpdates*>建议:厂商补丁:Microsoft---------Microsoft已经为此发布了一个安全公告(November2017SecurityUpdates)以及相应补丁:November2017SecurityUpdates:201711月份安全更新SecurityUpdates链接:htt
Visual Studio交叉编译器提供对ARM的支持
只要ARM平台能够运行Windows,VisualStudio就有能力拓展ARM平台。在VisualStudio201715.5预览版2中,该IDE通过使用GCC编译器,增加了对基于ARM的计算机和物联网(IoT)设备的支持力度,从而扩展了对ARM平台的支持。这样做的优点是,它允许开发人员使用VS2017IDE编写代码,然后使用标准的GCCARM编译器生成二进制代码。Microsoft的MarcGoodner解释说,这个功能利用了VisualStudio的OpenFolder特性,不需要ARM项目拥有正式的VisualStudio解决方案文件就能使用VisualStudio进行开发。同时,一旦项目的文件夹被打开,就可以对其设置进行编辑,指定应该使用的ARMGCC编译器。这个功能仍旧是一个预览版功能,需要进行一些手动设置才能支持这一功能。要尝试新功能,你首先要安装VS2017的最新预览版,然后安装LinuxDevelopwithC++,并且需要包含EmbeddedandIoTDevel
极简版ASP.NET Core学习路径及教程
绝承认这是一个七天速成教程,即使有这个效果,我也不愿意接受这个名字。嗯。这个路径分为两块:实践入门理论延伸有了ASP.NET以及C#的知识以及项目经验,我们几乎可以不再需要了解任何新的知识就开始操练,实践才是最快速入门的方法。实践分为以下几个版块(我要上图了):开始探索能将ASP.NETCore应用程序在控制台运行能将ASP.NETCore应用程序部署到IIS运行能将ASP.NETCore应用程序部署到CentOS运行最好学会在两种不同的机器上开发ASP.NETCore:Mac和Windows小小的玩弄一把配置Startup.cs以及WebHost能自定义WebHostBuilder,替代更改Kestrel启动端口等等使用ASP.NETCore依赖注入能自定义TransitScopedSingleton三种生命周期配置在能在Controller,View等地方使用ServierProvider使用ASP.NETCore配置了解Json以及命令行参数的使用了解环境变量最好有能力自定义
Winform开发框架中工作流模块之申请单草稿处理
在我们开发工作流模块的时候,有时候填写申请单过程中,暂时不想提交审批,那么可以暂存为草稿,以供下次继续填写或者提交处理,那么这个草稿的功能是比较实用的,否则对于一些填写内容比较多的申请单,每次要重填写很多数据,那会被用户骂的,从用户的角度上来讲,提供草稿保存的功能是比较友好的。本篇随笔介绍在工作流模块中使用一种通用的存储方式来存储及显示申请单草稿的信息。1、申请单填写在我们提交申请前,我们一般是需要填写一些相关的资料,如下界面所示。这个表单记录的信息不多,不过提供存为草稿的功能也是要的,我们所有申请单都提供这个标准功能。或者复杂一点的申请单以往做过草稿保存,把记录复制在正式的申请单里面,设置它为草稿状态即可,这种方式可以实现,不过不好统一处理,本篇随笔介绍的是所有草稿存储在一个表里面,我们定义一些字段用来存储对应信息的JSON数据,然后需要的时候,把它们逐一解析为对应的对象即可,这种我们可以在基类窗体里面封装它的【存为草稿】的逻辑处理了。2、草稿功能实现首先我们定义一个存储草稿信息,可以对单表,也可以对主从表的数据,我
Visual Studio Live Share 简介
VisualStudio实时分享功能简介2017.11.5AmandaSilver,@amandaksilver我们很高兴宣布我们正在开发“VisualStudioLiveShare”功能,该功能允许开发者使用VS2017或者VisualStudioCode进行实时合作开发!想要了解更多的关于LiveShare即将到来的有限的私有预览功能请关注这里.什么是LiveShare?LiveShare允许你的团队在同一份代码库上进行协作开发而不需要去同步代码或者配置一模一样的开发工具,设置或者环境。对于LiveShare而言,所见即所得。通过观看下面的视频了解我们正在工作的内容:https://channel9.msdn.com/Events/Connect/2017/T254?ocid=player当你共享一个协作式回话时,你的队友同样能够在他们的编辑器里看到工作内容。这意味着你的队友能够在不需要克隆代码库或者安装任何代码依赖的情况下阅读当前代码。他们可以使用丰富的语言特性在代码中遨游,而不只是打开另外一个采
ASP.NET没有魔法——ASP.NET MVC 过滤器(Filter)
上一篇文章介绍了使用Authorize特性实现了ASP.NETMVC中针对Controller或者Action的授权功能,实际上这个特性是MVC功能的一部分,被称为过滤器(Filter),它是一种面向切面编程(AOP)的实现,本章将从以下几个方面来介绍ASP.NETMVC中的过滤器。●ASP.NETMVC中的过滤器及其类型●ASP.NETMVC中常用的过滤器●ASP.NETMVC过滤器的应用方法●ASP.NETMVCAction方法的调用与Filter的执行●ASP.NETMVC过滤器的创建与获取●ASP.NETMVCAction及Result过滤器的管道执行ASP.NETMVC中的过滤器及其类型在之前的EntityFramework文章中介绍了EF自带的拦截器(interceptors)功能,ASP.NETMVC中的过滤器也和拦截器一样是一种面向切面(AOP)的编程方式,是一种不修改源代码的前提下对应用程序进行拓展的编程方式。一般AOP用来处理日志记录、性能统计、安全控制
4 种方法,让你在 macOS 上快速新建 txt 文本文件
用惯Windows的人,初次转移到macOS上都会有许多地方不适应,其中Finder又是重灾区。在Windows上,若想在当前目录创建一个新文件,只需要右键单击就可以了;而Finder比较反直觉地没有提供该功能,让你只能使用命令行或从应用程序新建,比较麻烦。在这里,少数派为大家带来4种在Finder中新建文本文件的方法,希望对你有帮助。直接拖拽文本至文件夹如果你只是想将其它地方的文字粘贴至一个新文档,可以试试选中文本后直接将其拖拽至桌面或其它文件夹,Finder就会为你自动生成一个新文件,十分方便。通过Automator创建服务利用macOS自带的Automator,我们可以将「新建文本文件」这一动作添加至Finder的「服务」菜单中,便于随时调用。首先,打开Automator并创建一个新文稿,类型选择「服务」。随后,在Automator上方将输入类型设置为「没有输入」,并选择应用程序为「Finder」。接着,从左侧资源库的「实用工具」分类中将「运行AppleScrip
最精简的中文数字和阿拉伯数字互相转换函数
原创(转载说明出处)应该没有见过更精简的中文数字和阿拉伯数字相互转换函数了。支持一些语法修正,欢迎测试反馈bugpublicclassChineseNumUtils{/***中文数字转阿拉伯数字*(长度不能超过long最大值)**@paramchNum中文数字*@return阿拉伯数字*@authorJarryLeo*/publicstaticlongch2Num(StringchNum){int[]numLen={16,8,4,3,2,1};//对应下面单位后面多少个零String[]dw={"兆","亿","万","千","百","十"};//中文单位String[]dw1={"兆","亿","萬","仟","佰","拾"};//中文单位另一版String[]sz={"零","一","二","三","四","五","六","七","八","九","十"};//中文数字String[]sz1={"〇","壹","贰"
处理ASP.NET Core中的HTML5客户端路由回退
在使用由Angular,React,Vue等应用程序框架构建的客户端应用程序时,您总是会处理HTML5客户端路由,它将完全在浏览器中处理到页面和组件的客户端路由。几乎完全在浏览器中...HTML5客户端路由在客户端上工作的很好,但是当深入链接到一个站点或在浏览器中按刷新时,客户端路由有一个恶习,变成服务器HTTP请求。请求可能未配置服务器的路由。在这篇文章中,我将讨论如何使ASP.NETCore(或间接ASP.NET应用程序)通过有效地将客户端应用程序重新连接到其路由来处理这些“假”请求。Html5客户端路由?如果您不知道HTML5客户端路由是什么,请快速回顾一下。客户端框架实现他们自己的客户端路由机制,以便他们可以-就像服务器应用程序-在页面或组件之间进行导航。Angular支持几种路由类型:哈希路线(http://localhost:4200/#!/albums或http://localhost:4200/#/albums)HTML5路线(http://localhost:4200
AY写给国人的ASP.NET Core2教程【2/30】
使用Razor做Web,我web几乎忘差不多了,本demo练习EFCore新建coremvc====================www.ayjs.net杨洋wpfui.comayuiayaaronyang=======请不要转载谢谢了。=============================www.ayjs.net杨洋wpfui.comayuiayaaronyang=======请不要转载谢谢了。=========F5运行项目关于MVC,这里AY假设你曾经已经掌握ASP.NETMVC了,所以不介绍了,不会的自己百度。打开模板页Views/Shared/_Layout.cshtml
如何在ASP.NET Core Web API测试中使用Postman
使用Postman进行手动测试如果您是开发人员,测试人员或管理人员,则在构建和使用应用程序时,有时了解各种API方法可能是一个挑战。使用带有.NETCore的Postman为您的WebAPI生成良好的文档和帮助页面就像进行一些HTTP调用一样简单。让我们开始从GitHub下载简单的待办事项。从这个链接下载并运行下面的TodoMvcSolution。下载PostmanPostman是GoogleChrome应用程序,用于测试API调用。您可以从下面的网站下载并安装Postman。这里是我们可以测试的API-获取,发布,放置和删除这个应用程序。这里是我们要测试的WebAPI。//Copyright2017(c)SmartIT.Allrightsreserved.//ByJohnKocer//ThisfileisforSwaggertest,thisapplicationdoesnotusethisfileusingSystem.Co
asp.net web api客户端调用
接口2://Post:http://127.0.0.1/HY_WebApi/api/V2/Key/FunctionTest2[HttpPost]publicHttpResponseMessageFunctionTest2(Model2model){......}接口参数:publicclassModel1{publicList
C#实现的apache htpasswd加密
一.VisualSvnServer这个软件大家都知道,具体使用时创建用户名密码和组时,每次都要登陆到VisualSvnServer所在的机器上,次次如此...由于一些原因要把这个用户管理的功能集成到OA中,这样可以OA中集中管理SVN的帐号(所有程序都是基于局域网使用)二.VisualSvnServer的帐户文件存在当前Repositories下的htpasswd文件中,格式为用户名:xxxxxxxxxxxxxxxxxxxxxxxxxx(x为加密后的密码字符串)这样需要解决的关键就在于怎么样得到密码加密后的字符串.通过google找到了一个C#实现htpasswd加密的类库"CryptSharp",site:https://www.zer7.com/software/cryptsharp(不需要FQ)三.使用代码方法usingCryptSharp;stringcryptedPassword=Crypter.MD5.Crypt(password,newCrypterOptions(){{Cry
使用Mono.Cecil实现IL代码注入
前言腾讯开源的Unity热更解决方案xLua有一个非常吸引人的特性就是Hotfix,其原理是使用Mono.Cecil库对进行C#层编译出来的dll程序集进行IL代码注入。其作者也在知乎的回答中简单说明了原理:如何评价腾讯在Unity下的xLua(开源)热更方案?-车雄生的回答-知乎如果你需要在自己的lua方案中添加这样的Hotfix特效,那可以考虑用这个方法。本文的目的就旨在演示说明Mono.Cecil库的一些基本用法,希望可以帮到你。本文首发于我的个人博客,示例工程在我的github中的CecilInject。演示新建一个Unity项目,新建一个空场景,在Assets/Scripts目录(没有则新建一个,下文提到的目录也一样)下新建脚本Test.cs,在场景的主摄像机中挂载该脚本,内容修改如下:usingSystem;usingUnityEngine;publicclassTestInjectAttribute:Attribute{}publicclassNormal{publicstatici
基于.NET CORE微服务框架 -surging 基于messagepack、protobuffer、json.net 性能对比
1、前言surging内部使用的是高性能RPC远程服务调用,如果用json.net序列化肯定性能上达不到最优,所以后面扩展了protobuf,messagepack序列化组件,以支持RPC二进制传输.在这里需要感谢白纸无字Zonciu,新增了messagepack序列化,让surging性能上跨了一大步。此篇文章我们来谈谈messagepack、protobuffer、json.net,并且性能做下对比开源地址:https://github.com/dotnetcore/surging2、序列化组件2.1surging使用的是以下序列化组件:json.net:surging使用的是Newtonsoft.Json,它是基于json格式的序列化和反序列化的组件.官方网站:http://json.codeplex.com/protobuf:surging使用的是protobuf-net,它是基于二进制格式的序列化和反序列化的组件.官方网站:https://github.com/mgravell/proto
C#进阶--WebApi异常处理机制
其实对于C#异常处理大家都不陌生,但是对于在WeiApi上的异常处理实际上也和传统异常处理区别不大,但是却经过封装可以让异常更加友好,https://docs.microsoft.com/en-us/aspnet/web-api/overview/error-handling/exception-handling,通过微软的官方介绍,我们可以知道WeiApi可以简单概述为三种异常,接下来我们围绕这三种异常给出例子,如何封装和处理以上三种异常异常过滤异常过滤器实现了System.Web.Http.Filters.IExceptionFilter接口。编写异常过滤器最简单的方法是从System.Web.Http.Filters.ExceptionFilterAttribute
【Win 10 应用开发】UI Composition 札记(六):动画
动画在XAML中也有,而且基本上与WPF中的用法一样。不过,在UWP中,动画还有一种表现方式——通过UIComposition来创建。基于UIComposition的动画,相对于XAML动画,有以下优点:1、不使用UI线程,XAML动画是共享UI线程的,而Composition中的动画是使用辅助线程的。2、Composition动画支持表达式(计算公式)来产生动画,相对灵活。老周的建议是:两者都用,因为基于XAML和基于Composition的动画各有特点,在应用程序中都可以混合来用。我们不要被一些不健康的思想所毒害,世界上没有什么技术可以取代和不取代,只要用得上,哪怕是1000年前的技术也同样适用(事实也表明有些东西我们现在科技这么发达竟然做不到,可咱们祖先在N千万年前反而能做到)。所以,我们应该向庄子先生学习,思维要灵活,合理应用一切可用的资源。对于动画,不管是啥类型的,其实基本要素都一样,首先,动画是基于时间变化而产生的“眼球欺骗”技术,只是一个个帧随着时间变
学会WCF之试错法——安全配置报错分析
安全配置报错分析服务端配置
学会WCF之试错法——数据传输
数据传输服务契约[ServiceContract]publicinterfaceIService{[OperationContract]stringGetData(intvalue);[OperationContract]stringGetString(stringvalue);[OperationContract]voidUpload(Requestrequest);}[MessageContract]publicclassRequest{[MessageHeader(MustUnderstand=true)]publicstringFileName{get;set;}[MessageBodyMember(Order=1)]publicStreamContent{get;set;}}服务[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall,ConcurrencyMode=ConcurrencyMode.Reentr
闲谈异步调用“扁平”化
哦,代码……就把它们当成插图吧随着CPU从单核变多核,软件从注重功能到注重体验,Web从页面跳转方式到Web2.0的无刷新加载(AJAX),程序员越来越多的接触多线程和异步。而Android的主线程中不允许操作网络,更是将程序员们推向了异步的深渊。异步深渊产生的主要原因是回调,这在nodejs里尤其严重。//[node.js]doFirstThing(function(err,data){doSecondThing(data,function(err,data){doThirdThing(data,function(err,data){//...falldown})});});为了逃离回调的深渊,大家开始想各种办法来把回调扁平化。在JavaScript中,Promise(指该类方法而非某个库)成为众多解决方案的佼佼者,并成功被ES6采纳。//[node.js]doFirstThing().then(doSecondThing).then(doThirdThing)//