关键代码
使用中间件获取访问信息
1
app.UseMiddleware<VisitMiddleware>();//启用中间件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15public class VisitMiddleware
{
RequestDelegate _request;
public VisitMiddleware(RequestDelegate request)
{
_request = request;
}
public Task Invoke(HttpContext context)
{
//context对象包含访问者的所有信息,包括来源ip,使用的客户端等
}
}
UseExceptionHandler的使用与全局异常的捕捉
1
2//启用UseExceptionHandler中间件
app.UseExceptionHandler(builder => builder.Run(async context => await ErrorEvent(context)));1
2
3
4
5
6
7public Task ErrorEvent(HttpContext context)
{
context.Response.ContentType = "text/html;charset=utf-8";
var exception = context.Features.Get<IExceptionHandlerFeature>();
// error对象包含抛出的异常信息
var error = exception?.Error;
}