引言
ASP.NET Core 1.1 是一个跨平台的Web应用程序框架,它以前身ASP.NET的版本升级,具有更高效、更模块化和更易于组织的特点。本文将介绍ASP.NET Core 1.1中的几个重要概念:静态文件、路由、自定义中间件和身份验证,并通过丰富的示例说明它们的用法。
静态文件
静态文件指的是不需要经过处理直接返回给客户端的文件,如HTML、CSS、JavaScript和图像等。ASP.NET Core 1.1提供了静态文件中间件,可以方便地管理和提供静态文件。
添加静态文件中间件
首先,在Startup.cs
文件的Configure
方法中添加以下代码:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseStaticFiles();
// ...
}
这样就可以将项目中的wwwroot
文件夹中的静态文件暴露给客户端。例如,可以通过URL /css/style.css
访问项目中的wwwroot/css/style.css
文件。
自定义静态文件目录
如果想要将静态文件放在不同的目录中,可以像下面这样进行配置:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "files")),
RequestPath = "/files"
});
// ...
}
上述代码将静态文件存放在项目根目录下的files
文件夹中,并通过URL /files
访问。
路由
路由是指将请求映射到相应的处理程序的过程。ASP.NET Core 1.1提供了路由中间件,可以根据不同的URL和HTTP方法将请求分发给不同的处理程序。
添加路由中间件
在Startup.cs
文件的Configure
方法中,添加以下代码启用路由中间件:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc();
// ...
}
控制器和视图中的路由可以通过特性和约定指定,这里以约定为例。
控制器路由约定
在Controllers
文件夹中创建一个名为HomeController.cs
的控制器文件,并添加以下代码:
public class HomeController : Controller
{
public IActionResult Index()
{
return Content("Hello, World!");
}
}
上述代码表示Index
方法对应URL /Home/Index
,并返回一个字符串"Hello, World!"。如果想要在根URL直接访问该方法,可以修改Configure
方法中的路由配置如下:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
// ...
}
这样URL /
将会映射到HomeController
的Index
方法。
视图路由约定
在Views
文件夹中的Home
文件夹下,创建一个名为Index.cshtml
的文件,并添加以下代码:
<h1>Hello, World!</h1>
当请求/Home/Index
时,该视图将会返回给客户端。
自定义中间件
中间件是ASP.NET Core 1.1的核心概念之一,用于处理HTTP请求和响应。开发者可以自定义中间件来扩展和定制请求或响应的处理逻辑。
创建自定义中间件
首先,创建一个名为MyMiddleware.cs
的类文件,代码如下:
public class MyMiddleware
{
private readonly RequestDelegate _next;
public MyMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
// 处理请求逻辑
await _next(context);
// 处理响应逻辑
}
}
配置自定义中间件
在Startup.cs
文件的Configure
方法中,添加以下代码来配置自定义中间件的使用:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMiddleware<MyMiddleware>();
// ...
}
上述代码表示在请求和响应处理过程中使用MyMiddleware
中间件。
身份验证
ASP.NET Core 1.1提供了身份验证中间件,可以非常便捷地进行用户身份验证。这里以使用Cookie进行身份验证为例。
添加身份验证中间件
首先,在Startup.cs
文件的ConfigureServices
方法中添加以下代码以启用身份验证功能:
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = new PathString("/Account/Login");
options.AccessDeniedPath = new PathString("/Account/AccessDenied");
});
}
上述代码配置了使用Cookie进行身份验证,并指定了登录和访问拒绝时的重定向路径。
配置身份验证
在Startup.cs
文件的Configure
方法中,添加以下代码以配置身份验证中间件的使用:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseAuthentication();
// ...
}
上述代码表示在请求处理过程中使用身份验证中间件。
至此,我们已经对ASP.NET Core 1.1中的静态文件、路由、自定义中间件和身份验证进行了简单的介绍。通过合理地使用这些功能,你可以构建出强大、灵活和安全的Web应用程序。
本文来自极简博客,作者:夏日蝉鸣,转载请注明原文链接:ASP.NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介