首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET Core 2.1 : 十四.静态文件与访问授权、防盗链

本文主要通过解读一下ASP.NET Core对于静态文件的处理方式的相关源码,来看一下为什么是wwwroot文件夹,如何修改或新增一个静态文件夹,为什么新增的文件夹名字不会被当做controller处理...访问授权怎么做? 一、静态文件夹 所谓静态文件,直观的说就是wwwroot目录下的一些直接提供给访问者的文件,例如css,图片、js文件等。...; }); } 三、新增静态文件目录 除了这个默认的wwwroot目录,需要新增一个目录来作为静态文件的目录,可以Startup文件的 app.UseStaticFiles...五、静态文件授权管理 默认情况下,静态文件是不需要授权,可以公开访问的。...所以可以通过Filter的方式来处理,首先可以在应用目录中新建一个"images"文件夹, 而这时就不要把它设置为静态文件目录了,这样这个"images"目录的文件默认情况下是不允许访问的, 然后通过Controller

1.2K20

ASP.NET Core应用针对静态文件请求的处理: 以Web的形式发布静态文件

虽然ASP.NET Core是一款“动态”的Web服务端框架,但是在很多情况下都需要处理针对静态文件的请求,最为常见的就是这对JavaScript脚本文件、CSS样式文件和图片文件的请求。...针对不同格式的静态文件请求的处理,ASP.NET Core为我们提供了三个中间件,它们将是本系列文章论述的重点。...不过在针对对它们展开介绍之前,我们照理通过一些简单的实例来体验一下如何在一个ASP.NET Core应用中发布静态文件。...我们知道ASP.NET Core应用具有两个重要的根目录,它们分别是ContentRoot和WebRoot,后者也是对外发布的静态文件默认使用的根目录。...我们知道ASP.NET Core应用大部分情况下都是利用一个FileProvider对象来读取文件的,它在处理针对静态文件的请求是也不例外。

1.3K50
您找到你想要的搜索结果了吗?
是的
没有找到

ASP.NET Core应用针对静态文件请求的处理: 条件请求与区间请求

目录 一、条件请求     HTTP条件请求     针对静态文件的条件请求 二、 区间请求     HTTP区间请求     针对静态文件的区间请求 一、条件请求 所谓的条件请求就是客户端在发送GET...针对静态文件的条件请求 接下来我们通过实例演示的形式来介绍StaticFileMiddleware中间件在针对条件请求方面做了些什么。...假设我们在ASP.NET Core应用中发布一个文本文件(foobar.txt),内容为“abcdefghijklmnopqrstuvwxyz0123456789”(26个字母+10个数字),目标地址为...除了承载着文件内容的主体外,响应报文还具有两个额外的报头,它们分别是表示目标文件最后一次修改时间的Last-Modified和作为文件签名的ETag。...针对静态文件的区间请求 接下来我们照理从HTTP请求和响应报文的角度来探讨StaticFileMiddleware中间件针对区间请求的支持。

3K50

ASP.NET Core应用针对静态文件请求的处理: StaticFileMiddleware中间件如何处理针对文件请求

我们通过《以Web的形式发布静态文件》和《条件请求与区间请求》中的实例演示,以及上面针对条件请求和区间请求的介绍,从提供的功能和特性的角度对这个名为StaticFileMiddleware的中间进行了全面的介绍...(假设文件名为“StaticFileOptions.json”),我们就可以按照如下的方式加载它并生成对应的Configuration对象,然后采用Options模式特有的编程模式实现与StaticFileOptions...四、实现原理 为了上读者朋友们对针对静态文件的请求在StaticFileMiddleware中间件的处理具有更加深刻的认识,接下来我们会采用相对简单的代码来重新定义这个中间件。...StaticFileMiddleware中间处理针对静态文件请求的整个处理流程大体上可以划分为如上图所示的三个步骤: 获取目标文件:中间件根据请求的路径获取目标文件,并解析出正确的媒体类型。...这两个默认值分别解释了两个问题,为什么请求的静态文件将WebRoot作为默认的根目录,以及为什么目标文件的扩展名决定响应的媒体类型。

1.4K50

ASP.NET Core应用针对静态文件请求的处理: DefaultFilesMiddleware中间件如何显示默认页面

DefaultFilesMiddleware中间件的目的在于将目标目录下的默认文件作为响应内容。...我们知道,如果直接请求的就是这个默认文件,那么前面介绍的StaticFileMiddleware中间件会将这个文件响应给客户端。如果我们能够将针对目录的请求重定向到这个默认文件上,一切就迎刃而解了。...如果当前目录下存在某个默认文件,那么它会将当前请求的URL修改成指向这个默认文件的URL。...,所以它最终依赖StaticFileMiddleware中间件来响应默认文件,所以针对后者的注册时必须的。...也正是这个原因,这个中间件需要优先注册以确保URL重写发生在StaticFileMiddleware响应文件之前。

82750

ASP.NET Core基础补充04

ASP.NET核心中间件组件是被组装到应用程序管道中以处理HTTP请求和响应的软件组件(从技术上来说,组件只是C#类)。 ASP.NET Core应用程序中的每个中间件组件都执行以下任务。...在ASP.NET Core中,已经有很多内置的中间件组件可供使用,您可以直接使用它们。 如果需要,还可以在asp.net核心应用程序中创建自己的中间件组件。...在ASP.NET Core应用程序中使用中间件组件的一些示例如下: 用于验证用户身份的中间件 中间件可用于记录请求和响应 用于处理错误的中间件 用于处理静态文件,例如图像,Javascript或CSS文件的中间件...用于在访问特定资源时授权用户的中间件 中间件组件是我们通常用于在ASP.NET Core应用程序中建立请求处理管道的组件。...ASP.NET Core中间件组件也可能决定不调用请求管道中的下一个中间件组件。 这个概念称为短路请求管道。 例如,我们有一个静态文件中间件组件。

14310

C# .NET面试系列七:ASP.NET Core

它引入了新的 HTTP 请求处理管道,支持异步编程模型,提高了应用程序的性能和响应速度。4、依赖注入ASP.NET Core内置了依赖注入容器,简化了组件之间的解耦和测试。...; });}3、静态文件服务// UseStaticFiles 中间件用于提供静态文件,例如CSS、JavaScript和图像。在 Configure 方法中,你可以启用并配置静态文件服务。...以下是一些中间件的常见使用场景:1、静态文件服务// 使用 UseStaticFiles 中间件来提供对静态文件(如CSS、JavaScript、图像)的访问。...以下是一些常见的文件文件夹:1、项目文件 (*.csproj)项目文件是工程的核心,它包含了项目的元数据、引用、编译选项等信息。通常以 .csproj 扩展名结尾。...5、静态文件 (wwwroot)wwwroot 文件夹用于存放静态文件,例如 CSS、JavaScript、图像等。这些文件可以被直接访问而无需经过处理。

12710

金三银四面试:ASP.NET Core面试题汇总

可以使用命令行创建应用。 使用AppSettings.json 来配置工程。 使用start up来注册服务。 更好的支持异步编程。 支持web socket和signal IR。...比如A调用B,而B实现了接口C,那么在A里面用C定义一个变量D,这个变量的实例不在A里面创建,而是通过A的上下文来获取。这样做的好处就是将类A和B分开了,他们之间靠接口C来联系,从而实现对接口编程。...静态文件中间件 (UseStaticFiles) 返回静态文件,并简化进一步请求处理。...用于授权用户访问安全资源的授权中间件 (UseAuthorization)。 会话中间件 (UseSession) 建立和维护会话状态。...异常/错误处理 HTTP 严格传输安全协议 HTTPS 重定向 静态文件服务器 Cookie 策略实施 路由 身份验证 会话 MVC 15.application builder的use和run方法有什么区别

7810

ASP.Net请求处理机制初步探索之旅 - Part 1 前奏

HTTP.SYS是一个位于Windows Server和Windows XP SP2中的操作系统核心组件(内核模式中),能够让任何应用程序通过它提供的接口,以HTTP协议进行信息通讯。...IIS首先会判断请求的是否是静态资源,如果是则直接到文件系统中拿到请求的html/css/js/jpg/gif/png等资源直接响应请求。 ②如果是动态资源则先查找是由哪个扩展来处理? ?   ...关于IIS服务器扩展: 由于IIS服务器在设计时引入了开放的ISAPI接口标准,具备极高的可扩展性。在核心组件不变的情况下可灵活支持不同类型不同版本的ASP.NET应用程序。...关于ISAPI: ISAPI(服务器应用编程接口),它为开发人员提供了强大的可编程能力,只要按照标准接口开发不同类型的Web应用程序的ISAPI扩展程序,就能实现对IIS功能上的扩展,从而使IIS可以处理不同类型的客户端请求...ISAPIRuntme.ProcessRequest()方法是进入ASP.Net的第一个入口,ASP.Net核心处理部分就刚刚开始。

1.5K20

一系列令人敬畏的.NET核心库,工具,框架和软件

代码分析和指标 awesome-static-analysis – 用于各种编程语言的静态分析工具,链接和代码质量检查器的精选列表。...联网 AspNetCore.Proxy – ASP.NET核心代理变得简单。 CurlThin – 用于C#的轻量级cURL绑定库,支持通过curl_multi接口进行多个同时传输。...安全性 – 用于Web应用程序安全性和授权的中间件。 SecurityHeaders – 允许向ASP.NET Core网站添加安全标头的小包。...AspNetAuthorizationWorkshop – 一个研讨会,用于浏览ASP.NET核心授权中的各种新部分 来自微软的BikeSharing360应用套件发布了 12月Connect 2016....NET持续交付微服务 ASP.NET Core 2.0身份验证和授权系统揭秘 ASP.NET授权实验室的演练 ASP.NET Core中的身份验证 测试 Selenium与.NET核心 InfoQ

18.3K30

ASP.NET Web API自身对CORS的支持: EnableCorsAttribute特性背后的故事

编程的角度来讲,ASP.NET Web API针对CORS的实现仅仅涉及到HttpConfiguration的扩展方法EnableCors和EnableCorsAttribute特性。...在ASP.NET Web API的应用编程接口中,CORS授权策略通过CorsPolicy类型表示。...Web API的应用编程接口中,围绕着这6个CORS响应报头的授权策略通过类型System.Web.Cors.CorsPolicy来表示。...关于针对目标Action的选择问题,有一个核心核心的细节值得关注:如果当前请求并非真正的跨域资源请求,而仅仅是一个采用“OPTIONS”作为HTTP方法的预检请求(Preflight Request)...CORS [5] ASP.NET Web API自身对CORS的支持: 从实例开始 [6] ASP.NET Web API自身对CORS的支持: CORS授权策略的定义和提供 [7] ASP.NET

1.2K110

IIS 5.x与ASP.NET

; 动态文件静态文件处理的不一致:因为只有基于ASP.NET的动态文件(比如.aspx、.asmx、.svc等等)的HTTP请求才能通过ASP.NET ISAPI进入ASP.NET管道,而对于一些静态文件...(比如.html、.xml、.img等)的请求,则由IIS直接响应,那么ASP.NET管道中的一些功能将不能用于这些基于静态文件的请求,比如,我们希望通过Forms认证应用于基于图片文件的请求; IIS...因为ISAPI是基于Win32的非托管的API,并非一种面向应用编程接口。通常我们希望的是诸如定义ASP.NET的HttpModule和HttpHandler一样,通过托管代码的方式来扩展IIS。...比如,可以将FormsAuthenticationModule提供的Forms认证应用到基于.aspx,CGI和静态文件的请求。...图7 ASP.NET 处理管道 HttpApplication HttpApplication是整个ASP.NET基础架构的核心,它负责处理分发给它的HTTP请求。

2.7K20

ASP.NET Web API自身对CORS的支持: CORS授权检验的实施

ASP.NET Web API的应用编程接口中,资源授权检验的结果通过类型CorsResult来表示。...对于ASP.NET Web API来说,CORS资源授权检验实施的目标是表示当请求的HttpRequestMessage对象,这个对象自然不可能使用在ASP.NET核心CORS引擎中。...三、CorsEngine 我们说ASP.NET核心CORS引擎定义在程序集System.Web.Cors.dll中,它主要体验为这个名为CorsEngine的对象,其主要的使命在于:根据提供的资源授权策略...所有的CorsEngine类型均实现System.Web.Cors.ICorsEngine接口,如下面的代码片断所示,跨域资源请求的授权检查就实现在其唯一的EvaluatePolicy方法中。...[6] ASP.NET Web API自身对CORS的支持: CORS授权策略的定义和提供 [7] ASP.NET Web API自身对CORS的支持: CORS授权检验的实施 [8] ASP.NET

1.6K110

Windows Server2008中的IIS7的五大特性

新的IIS7则完全解决了这个问题,IIS7从核心层讲被分割成了40多个不同功能的模块。像验证、缓存、静态页面处理和目录列表等功能全部被模块化。...IIS7不再拥有单一的metabase 配置储存,而将使用和ASP.NET支持的同样的web.config文件模型,这样就允许用户把配置和web应用的内容一起存储和部署,无论有多少站点,用户都可以通过web.config...在新版本中IIS 和ASP.NET 管理设置集成到了单个管理工具里。这样,用户就可以在一个地方查看和设置认证和授权规则,而不是像以前那样要通过多个不同的对话框来做。...这些扩展性模块可以使用native的C++代码或.NET托管代码来编写(你可以使用现有的ASP.NET System.Web.IHttpModule接口来实现)。...所有“内置”的IIS7功能(认证,授权静态文件供应,目录清单支持,经典的ASP,记录日志等),现在都是使用这个公开的模块化的管道API来实现的。

1.6K60

.NETASP.NET Routing路由(深入解析路由系统架构原理)

UrlRoutingHandler 对象内部结构及扩展应用 1】开篇介绍 这篇文章让我们愉快的学习一下ASP.NET核心的对象模型Routing模块,为什么说愉快呢,因为Routing正是建立在大家都比较熟悉的...ASP.NET管道模型基础之上的,所以相比其他一些陌生的概念会轻松很多,不过不要紧一回生二回熟; ASP.NET Routing 系统是一切通过ASP.NET进行Uri访问应用程序的基础(并非物理文件的直接映射...\Framework\v4.0.30319\Config 在该文件中我们可以找到系统级别的配置信息; 其实这里面配置的都是系统级别的选项,而我们程序里面使用的Web.config文件只是用来配置跟应用程序相关的选项...接口; 小结:其实可以将UrlRoutingModule对象理解成是ASP.NETRouting模块的基础部分,而扩展的地方则在我们应用程序配置的地方,也就是我们通常在Global.asax.cs文件中配置的路由数据...; 那么当基础部分有了之后我们能做到就是应用编程接口编程,其实这部分才是我们接触的地方;而这一小节我们将重点分析路由系统提供给我们应用层面的编程接口,也就是上面标题列出的几个核心对象; 先基本介绍一下这几个对象的意思和彼此之间的关系

1.5K90

WCF技术剖析之二:再谈IIS与ASP.NET管道

,比如身份验证; 动态文件静态文件处理的不一致:因为只有基于ASP.NET的动态文件(比如.aspx、.asmx、.svc等等)的HTTP请求才能通过ASP.NET ISAPI进入ASP.NET管道...,而对于一些静态文件(比如.html、.xml、.img等)的请求,则由IIS直接响应,那么ASP.NET管道中的一些功能将不能用于这些基于静态文件的请求,比如,我们希望通过Forms认证应用于基于图片文件的请求...因为ISAPI是基于Win32的非托管的API,并非一种面向应用编程接口。通常我们希望的是诸如定义ASP.NET的HttpModule和HttpHandler一样,通过托管代码的方式来扩展IIS。...比如,可以将FormsAuthenticationModule提供的Forms认证应用到基于.aspx,CGI和静态文件的请求。...图7 ASP.NET 处理管道 HttpApplication HttpApplication是整个ASP.NET基础架构的核心,它负责处理分发给它的HTTP请求。

1.5K110

.NET Core 3.0 Preview 6中对ASP.NET Core和Blazor的更新

在Blazor应用程序中,Startup使用标准ASP.NET Core中间件在类中配置身份验证和授权。...然后,可以通过引用Razor类库项目或通过包引用将这些静态资产包含在ASP.NET Core应用程序中。...静态资源保留在其原始文件夹中,Razor类库中静态资产内容的任何更改都会反映在应用程序中而不进行重建。...该Grpc.Net.ClientFactory设计用于non-ASP.NET应用模型的使用(如工人服务)仍然使用Microsoft.Extensions.*原语不会对ASP.NET核心的依赖。...*基元(不依赖于ASP.NET核心)的非ASP.NET应用程序模型(如Worker Services)。在执行服务到服务通信的应用程序中,我们经常发现大多数服务器也是使用其他服务的客户端。

6K20

.NET Core 3.0 Preview 6中对ASP.NET Core和Blazor的更新

在Blazor应用程序中,Startup使用标准ASP.NET Core中间件在类中配置身份验证和授权。...然后,可以通过引用Razor类库项目或通过包引用将这些静态资产包含在ASP.NET Core应用程序中。...静态资源保留在其原始文件夹中,Razor类库中静态资产内容的任何更改都会反映在应用程序中而不进行重建。...该Grpc.Net.ClientFactory设计用于non-ASP.NET应用模型的使用(如工人服务)仍然使用Microsoft.Extensions.*原语不会对ASP.NET核心的依赖。...*基元(不依赖于ASP.NET核心)的非ASP.NET应用程序模型(如Worker Services)。 在执行服务到服务通信的应用程序中,我们经常发现大多数服务器也是使用其他服务的客户端。

6.6K20

ASP.NET那点不为人知的事(一)

ASP.NET ASP.NET是运行在公共语言运行时刻时(CLR)上的应用程序框架。他用来在服务器端构建功能强大的web应用程序。...当浏览器请求 ASP.NET 文件时,IIS 会把该请求传递给服务器上的 ASP.NET 引擎,ASP.NET 引擎会逐行地读取该文件,并执行文件中的脚本,最后,ASP.NET 文件会以纯 HTML 的形式返回浏览器...),如果请求的是Html静态页面或者js,css,xml以及图片等,IIS直接返回请求的Html静态页面和js等相应文件。...IIS服务器扩展 由于IIS服务器在设计时引入了开放的ISAPI接口标准,具备极高的可扩展性。在核心组件不变的情况下可灵活支持不同类型不同版本的ASP.NET应用程序。...ISAPI(Internet Server Application Programming Interface) ISAPI(服务器应用编程接口),它为开发人员提供了强大的可编程能力,只要按照标准接口开发不同类型的

1.1K80
领券