繁体   English   中英

Asp.Net核心自定义身份验证中间件方案

[英]Asp.Net Core Custom Authentication Middleware scheme

我的项目在相同的解决方案中具有前端和API,因此我正在构建自定义身份验证中间件,该中间件旨在仅授权API控制器,因为前端控制器使用身份。

我像这样在Startup.cs上为Identity设置AutomaticAuthenticate选项为false

services.AddIdentity<ApplicationUser, IdentityRole>(config =>
        {                
            config.User.RequireUniqueEmail = true;
            config.Password.RequiredLength = 4;
            config.Cookies.ApplicationCookie.AuthenticationScheme = "Cookie";
            config.Cookies.ApplicationCookie.AutomaticAuthenticate = false;                           
        }).AddEntityFrameworkStores<DbContext>()
        .AddDefaultTokenProviders();

对于我的自定义中间件,我实现了自定义选项,我已经做到了

app.UseApiAuthorizationMiddleware(new ApiAuthenticationOptions
        {
            AuthenticationScheme = "Api",
            AutomaticAuthenticate = false
        });

现在当我尝试使用

[Authorize(AuthenticationSchemes = "Api")]

在我的控制器中,Visul Studio告诉我找不到AuthenticationSchemes,我丢失了,没有装配或引用。 快速操作工具告诉我要添加

"System.Net.Primitives": "4.0.11-rc2-24027"

但我最终使用的是4.0.10版本,并且无法编译...我不确定目前为止我所做的工作是否很好,或者这里是否确实存在问题。

我希望这很清楚。

谢谢

为了正确实现自定义身份验证中间件,我不仅必须实现从AuthenticationMiddleware继承的中间件,而且还必须实现从AuthenticationHandler扩展的身份验证处理程序,并且所有逻辑都在方法HandleAuthenticateAsync()上进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM