首页 存档 技术 查看内容

ASP.NET Core 认证及简单集群

2018-3-30 13:00 |来自: 互联网 343 0

摘要: (点击上方蓝字,可快速关注我们) 来源:KING_GUOKUN cnblogs.com/guokun/p/6266558.html 众所周知,在Asp.net WebAPI中,认证是通过AuthenticationFilter过滤器实现的,我们通常的做法是自定义AuthenticationFil ...

(点击上方蓝字,可快速关注我们)


来源:KING_GUOKUN

cnblogs.com/guokun/p/6266558.html


众所周知,在Asp.net WebAPI中,认证是通过AuthenticationFilter过滤器实现的,我们通常的做法是自定义AuthenticationFilter,实现认证逻辑,认证通过,继续管道处理,认证失败,直接返回认证失败结果,类似如下:


public async Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)

{

var principal = await this.AuthenticateAsync(context.Request);

if (principal == null)

{

context.Request.Headers.GetCookies().Clear();

context.ErrorResult = new AuthenticationFailureResult("未授权请求", context.Request);

}

else

{

context.Principal = principal;

}

}


但在.net core中,AuthenticationFilter已经不复存在,取而代之的是认证中间件。至于理由,我想应该是微软觉得Authentication并非业务紧密相关的,放在管道中间件中更合适。


那么,话说回来,在.net core中,我们应该怎么实现认证呢?如大家所愿,微软已经为我们提供了认证中间件。这里以CookieAuthenticationMiddleware中间件为例,来介绍认证的实现。


1、引用Microsoft.AspNetCore.Authentication.Cookies包。项目实践中引用的是"Microsoft.AspNetCore.Authentication.Cookies": "1.1.0"。


2、Startup中注册及配置认证、授权服务:


服务注册:


services.AddMvc(options =

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部