
.Net
文章平均质量分 63
不死鸟.亚历山大.狼崽子
太极计算机股份有限公司系统架构师,从事ios、.net、flex、java等开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【.NET】WebApiThrottle限流框架(5)——IP和客户端key的白名单
如果请求是从一个白名单中的IP或客户端key发起的,那么限流策略将不会生效,这个请求的所有信息也不会被存储。 其IP白名单列表支持IP v4和v6的范围配置,比如"192.168.0.0/24", "fe80::/10" 和 "192.168.0.0-192.168.0.255",关于IP范围的更多信息请查看https://github.com/jsakamoto/ipaddressrange...转载 2018-10-05 21:13:18 · 923 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(2)——基于IP全局限流
下面的代码是限制来自同IP请求的最大次数。如果在一分钟内,同样IP的客户端分别调用api/values和api/values/1两个接口, 那么调用api/values/1的请求会被拒绝掉。public static class WebApiConfig{ public static void Register(HttpConfiguration config) { ...转载 2018-10-05 21:09:56 · 1314 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(4)——基于IP和客户端key的端点限流
如果同一个ip的客户端,在同一秒内,调用了2次api/values,其最后一次的调用将会被拒绝掉。如果想接口通过唯一key去识别限制客户端,忽略客户端的ip地址限制,应该配置IpThrottling为false。config.MessageHandlers.Add(new ThrottlingHandler(){ Policy = new ThrottlePolicy(perS...转载 2018-10-05 21:11:57 · 421 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(1)——介绍
为了防止网站意外暴增的流量比如活动、秒杀、攻击等,导致整个系统瘫痪,在前后端接口服务处进行流量限制是非常有必要的。本篇主要介绍下Net限流框架WebApiThrottle的使用。WebApiThrottle是一个专门为webApi限制请求频率而设计的,支持寄宿OWIN上的中间件的限制过滤。服务端接口可以基于客户端请求IP地址、客户端请求key、及请求路由去限制webapi接口的访问频率。使...转载 2018-10-05 21:07:56 · 962 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(3)——基于IP的端点限流
上面的api/values限流配置会对整个api/values开头的API限流,同一秒内、同一ip访问api/values后,所有后续访问api/values/xxx的请求都会被拒绝掉。 如果配置了端点限流,同一秒内你也访问api/values/1了,请求将不会被拒绝,因为它们走的是不同的路由。config.MessageHandlers.Add(new ThrottlingHandler(...转载 2018-10-05 21:10:58 · 540 阅读 · 0 评论 -
【.NET】了解过入口函数 Main() 吗?带你用批处理玩转 Main 函数
简介我们知道,新建一个控制台应用程序的时候,IDE 会同时创建一个默认的类 Program.cs,该类会包含一个 Main 方法。我们在直接 F5 的时候就会立即执行里面的语句。但是,你自己有认真了解过它吗。 Main方法是 C# 控制台应用程序和 Windows 窗体应用程序的入口点(也称切入点)。应用程序启动时,Main方法是第一个调用的方法。程序中只能,只允许有一个入口点,如果...转载 2020-02-25 14:48:49 · 1487 阅读 · 0 评论 -
【.NET】解析XML(简单实例)
首先,封装一个XML序列化和反序列化的函数。using System.Xml.Serialization; using System.IO;public class XmlSerialize { /// <summary> /// 反序列化XML为类实例 /// </summary> /// <...转载 2020-02-24 23:39:23 · 633 阅读 · 1 评论 -
【.NET】二维码生成与解析 (使用ThoughtWorks.QRCode)
1.二维码生成//创建二维码生成类 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();//设置编码模式 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;/设置编码测量度 qrCode...转载 2020-02-24 23:22:01 · 1060 阅读 · 0 评论 -
【.NET】用Aspose.Words for .NET动态生成word文档中的数据表格
1、概述 最近项目中有一个这样的需求:导出word文档,要求这个文档的格式不是固定的,用户可以随便的调整,导出内容中的数据表格列是动态的,例如要求导出姓名和性别,你就要导出这两列的数据,而且这个文档不是导出来之后再调整而是导出来后已经是调整过了的。看到这里,您也许马上想到用模板导出!而且.NET中自带有这个组件:Microsoft.Office.Interop.Word,暂且可以满足需求吧...转载 2020-02-24 21:20:17 · 787 阅读 · 0 评论 -
【.Net】生成XML空元素/空节点自动换行解决方案
使用DataSet可以直接输出XML,并可指定是否带有Schema:ds.WriteXml(XMLFile,XmlWriteMode.WriteSchema) 不过,这样将不会输出值为Null的字段,如:你可能希望结果是这样:<a>1</a> <b>2</b> <c></c> 但结果为:...转载 2020-02-14 20:55:37 · 708 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(11)——存储限流的数据
WebApiThrottle会在内存中存储所有的请求数据,寄宿在IIS里使用ASP.NET版本的cache、自寄宿在Owin上使用运行时版本的缓存MemoryCache。如果你想改变请求数据存储的策略,框架是支持redis、nosql、数据库存储的,这种情况下必须创建自己的存储引擎,可以通过实现IThrottleRepository接口完成。public interface IThrottl...转载 2018-10-06 10:42:13 · 466 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(10)——获取API的客户端key
默认情况下,WebApiThrottle的ThrottlingHandler(限流处理器)会从客户端请求head里通过Authorization-Token key取值。如果你的API key存储在不同的地方,你可以重写ThrottlingHandler.SetIndentity方法,指定你自己的取值策略。public class CustomThrottlingHandler : Thro...转载 2018-10-05 21:20:56 · 548 阅读 · 1 评论 -
【.NET】WebApiThrottle限流框架(9)——在web.config或app.config中定义限制策略
在web.config或app.config中配置限制策略,通过ThrottlePolicy.FromStore加装配置项。config.MessageHandlers.Add(new ThrottlingHandler(){ Policy = ThrottlePolicy.FromStore(new PolicyConfigurationProvider()), Repo...转载 2018-10-05 21:19:16 · 609 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(8)——关于被拒请求的计数器
默认情况下,被拒绝的请求不会累加到WebApiThrottle的计数器里。 比如一个客户端在同一秒中请求了3次,而你配置的限制策略是每秒1次,那么分钟、小时、天的计数器只会记录第一次调用,因为第一次请求不会被拒绝。如果你想把被拒绝的请求也计算到其他的计数器里(分钟、小时、天),你可以设置StackBlockedRequests为true。config.MessageHandlers.Add(...转载 2018-10-05 21:17:23 · 463 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(7)——端点自定义限制频率
你也可以为明确的路由地址去自定义限制频率,这些限制配置会重写WebApiThrottle的默认配置。也可以通过相关联的路由地址去定义端点的限制规则,比如api/entry/1端点的请求仅仅是/entry/整个路由地址请求的一部分。 配置后,端点限制引擎会在请求的绝对URI中去搜索这个表达式(api/entry/1),如果这个表达式在请求路由策略中被找到,那么这个限制规则将会被应用。如果有两个或更多...转载 2018-10-05 21:15:22 · 674 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(6)——IP和客户端key自定义限制频率
你可以自定义基于ip或客户端key的请求频率限制,这些限制会重写WebApiThrottle的默认配置。需要注意的是,这些自定义策略需要写到全局配置里才会生效,策略里可以单独给某个ip或某个key配置限流策略。config.MessageHandlers.Add(new ThrottlingHandler(){ Policy = new ThrottlePolicy(perSe...转载 2018-10-05 21:14:21 · 1039 阅读 · 0 评论 -
【.NET】基于Owin中间件实现身份验证实例(OAUTH 2.0方式)附源码
1,在Webapi项目下添加如下引用:Microsoft.AspNet.WebApi.OwinOwinMicrosoft.Owin.Host.SystemWebMicrosoft.Owin.Security.OAuthMicrosoft.Owin.Security.CookiesMicrosoft.AspNet.Identity.OwinMicrosoft.Owin.C...转载 2018-10-07 10:19:08 · 2648 阅读 · 0 评论 -
.Net下的分库分表帮助类——用分库的思想来分表
简介 在大型项目中,我们会遇到分表分库的情景。 分库,将不同模块对应的表拆分到对应的数据库下,其实伴随着公司内分布式系统的出现,这个过程也是自然而然就发生了,对应商品模块和用户模块,我们会建立商品服务和用户服务,各个服务访问各自的数据库,系统间的交互,通过远程调用实现,而不是直接访问其数据库。 但是随着业务的进一步发展,数据表也会出现瓶颈,比如数据表的记录已经超过了...转载 2018-07-26 22:40:12 · 1268 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(12)——运行期间更新限制频率
为了更新限制策略对象,并在运行时使用新的ThrottlingHandler对象,需要引入WebApiThrottle 1.2版本后支持的ThrottleManager.UpdatePolicy函数。在启动时注册ThrottlingHandler对象,并在构造函数中传入PolicyCacheRepository,如果你是通过Owin自寄宿的webapi,需要使用PolicyMemoryCach...转载 2018-10-06 10:43:47 · 876 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(13)——限流的请求日志
如果你想记录限流后的请求日志,可以实现IThrottleLogger接口,添加到ThrottlingHandler里。public interface IThrottleLogger{ void Log(ThrottleLogEntry entry);}实现ITraceWriter日志记录接口的例子public class TracingThrottleLogger :...转载 2018-10-06 10:45:17 · 933 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(14)——用ThrottlingFilter、EnableThrottlingAttribute特性配置限制频率
EnableThrottling与ThrottlingHandler是一个二选一的策略配置方案,二者会做同样的事情,但ThrottlingHandler可以通过EnableThrottlingAttribute特性指定某个webapi的controllers和actions去自定义频率限制。需要注意的是,在webapi请求管道中,ThrottlingHandler是在controller前面执行,...转载 2018-10-06 10:46:28 · 1490 阅读 · 0 评论 -
【.NET】WebApiThrottle限流框架(15)——关于ThrottlingMiddleware限制频率
ThrottlingMiddleware是一个OWIN中间件部分,它的作用跟ThrottlingHandler一样。使用ThrottlingMiddleware 你可以在webapi作用域范围外配置限制策略,跟使用OAuth中间件或SignalR端点类似。自寄宿配置例子:public class Startup{ public void Configuration(IAppBu...转载 2018-10-06 10:47:34 · 569 阅读 · 0 评论 -
VS 2015调试状态下,Bad Request - Invalid Hostname
当我们后台api开发者,与前端联调时,前端无法通过ip或者127.0.0.1 进行访问你的接口时,遇到的问题修改如下工程路径\.vs\config 文件夹下面的applicationhost.config 这个文件,找到site 那个节点,修改bindings 属性,这其实给在iis中编辑绑定是一样的意思。 <site name="DXMeteorological....转载 2018-10-15 11:16:19 · 2042 阅读 · 0 评论 -
【.NET】linq查询之动态OrderBy
groupList是原始数据集合,List<T>sortOrder是排序类型,desc 或者ascsortName是排序属性名称1.使用反射。private static object GetPropertyValue(object obj, string property){ System.Reflection.PropertyInfo propertyInf...原创 2019-04-16 16:07:08 · 750 阅读 · 0 评论 -
【.NET】RabbitMQ的direct类型Exchange的使用
Producter发送消息代码:/// <summary> /// 连接配置 /// </summary> private static readonly ConnectionFactory rabbitMqFactory = new ConnectionFactory(){ HostName =...原创 2018-08-15 11:02:21 · 499 阅读 · 0 评论 -
【.NET】 增加字符串长度范围校验Attribute
DataAnnotations提供了RequiredAttribute进行null或Empty校验、StringLengthAttribute进行字符串长度校验,很奇怪怎么不提供一个StringLengthRangeAttribute校验。比如我们在校验输入时,可能需要密码在6-20这个范围内,这时候我们自己扩展一个ValidationAttribute就行了,很简单:[At...原创 2019-05-13 14:33:02 · 1773 阅读 · 4 评论 -
asp.net得到每月最后一天日期
DateTime now = DateTime.Now; DateTime d1 = new DateTime(now.Year, now.Month, 1); DateTime d2 = d1.AddMonths(1).AddDays(-1); d1是本月的第一天,d2本月的最后一天,最后一天的算法是:得到本月的第一天然后增加一月,再减去一天原创 2017-12-20 09:46:24 · 1612 阅读 · 0 评论 -
IE bug:ajax请求返回304解决方案
bug说明:同一账户下的默认收货地址只有一个,默认收货地址可以修改,修改完成后,使用ajax重新加载收货地址部分。默认收货地址状态标记:status = 1;在IE浏览器做了修改后,重新加载的数据和未修改之前一样,拿到的数据如下图所示:而在谷歌浏览器刷新页面,拿到以下数据:谷歌的数据和数据库的数据是一致的。开始以为是js代码在IE浏览器运行错误,打开IE控制台后,发现代码并没有报错。于是我想是不是...转载 2018-06-01 18:18:18 · 1715 阅读 · 0 评论 -
nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
今天添加新项目想添加几个工具包,打开NuGet就这样了 发生错误如下:[nuget.org] 无法加载源 https://api.nuget.org/v3/index.json 的服务索引。响应状态代码不指示成功: 503 (Service Unavailable)。 解决办法:添加一个新的源,Nuget.org取消勾选在新源中添加地址:https://www.nuget.org/api/v2/...转载 2018-06-12 15:14:31 · 13117 阅读 · 0 评论 -
.NET 4.5(C#): 在HttpRequestHeaders中设置Basic验证
不同于之前的HttpWebRequest类型,在.NET 4.5中新的HttpRequestHeaders类型直接有一个Authorization属性,对应类型是:AuthenticationHeaderValue,同样在System.Net.Http.Headers命名空间内。AuthenticationHeaderValue有两个属性Parameter和Scheme。为了弄清这两个参数在对Au...转载 2018-04-09 17:59:50 · 6122 阅读 · 0 评论 -
listbox相互传值
void AddBtn_Click(Object Src, EventArgs E) { if (AvailableFonts.SelectedIndex != -1) { InstalledFonts.Items.Add(new ListItem(AvailableFonts.SelectedItem.Value));原创 2017-12-21 08:46:34 · 282 阅读 · 0 评论 -
asp.net如何判断地址栏是传值
Request["a"]==null是否存在要请求的键;Request.Querystring["a"].count >0地址栏传值个数原创 2017-12-21 08:44:03 · 421 阅读 · 0 评论 -
【.NET】Repeater的分页
Repeater控件是个好东西。轻量级。又好用。完全的自定义。但是,正是因为这些优点它没有自动分页的功能。这个需要研究一下。我看了一下起点等小说网站,那些什么推荐排名榜用Repeater控件那是很爽的就能实现。太简单了。而且加个UpdatePanel就更加爽了。像163博客一样。 ok了。研究了一个上午,终于写出了自己的实验代码。成功通过了。当然,成功离不开网上的兄弟。点此处查看参考资料!...转载 2017-12-21 08:40:15 · 312 阅读 · 0 评论 -
设置webconfig解决ASP.NET上传文件大小限制
使用webconfig的设置解决ASP.NET上传文件大小限制对于asp.net,默认只允许上传4M文件,增加如下配置,一般可以自定义最大文件大小.//executionTimeout預設是90秒,要改的話:executionTimeout="180"Asp.net支持的最大上传文件大小同事碰到一个问题,用DataSet提交一个比较大的数据集时出现异转载 2017-12-20 13:03:35 · 9927 阅读 · 0 评论 -
.NET GridView删除某一行,只去除GridView中的记录,不更新数据库
<asp:Button ID="btnDelete" runat="server" CssClass="button1" Text="刪除" CommandName="Del" CommandArgument=' ' OnClientClick="return window.confirm('您確定要刪除嗎?');" />原创 2017-12-20 09:52:44 · 3248 阅读 · 0 评论 -
.NET List中FindAll用法示例
using System;using System.Collections.Generic;public partial class List : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { CreateList(); } private原创 2017-12-20 09:45:16 · 1914 阅读 · 0 评论 -
C# JArray与JObject 的使用
STEP1、using Newtonsoft.Json.Linq;STEP2 如何获取json里的某个属性(节点)值,对其删改,新增 //2.1 数组用JArray加载 string jsonText = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aa','b':'bb,'c':'cc'}]"; var mJObj = JA转载 2017-12-20 09:39:28 · 5390 阅读 · 0 评论 -
可跨域的单点登录(SSO)实现方案【附.net代码】
SSO简介定义:传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前session是否为空,为空的话跳转到登录界面登录,不为空的话允许访问。 单点登录是一种多站点共享登录访问授权机制,访问用户只需要在一个站点登录就可以访问其它站点需要登录访问的资源(url)。用户在转载 2017-10-19 16:45:28 · 968 阅读 · 0 评论 -
单点登录原理与简单实现
一、单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求转载 2017-10-19 16:31:43 · 182 阅读 · 0 评论 -
【.NET】WebAPi之断点续传下载(下)
前言上一篇我们穿插了C#的内容,本篇我们继续来讲讲webapi中断点续传的其他情况以及利用webclient来实现断点续传,至此关于webapi断点续传下载以及上传内容都已经全部完结,一直嚷嚷着把SQL Server和Oracle数据库再重新过一遍,这篇过完,就要开始新的征程,每一个阶段都应该有自己的小目标,要不然当工作太忙没时间去充电,太闲又变得懒散,想想一切是为了未来买得起孩子高档的奶粉就...转载 2017-10-19 15:59:17 · 3888 阅读 · 0 评论