
[英]ASP.NET Core 2.0 custom middleware using cookie authentication
[英]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.