首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Asp.Net核心定制认证中间件方案

Asp.Net核心定制认证中间件方案
EN

Stack Overflow用户
提问于 2016-05-28 10:46:20
回答 1查看 1.8K关注 0票数 2

我的项目在同一解决方案中有一个前端和一个API,因此我正在构建一个自定义身份验证中间件,因为前端控制器使用身份,所以它只对API控制器进行授权。

我在Startup.cs上为Identity设置了AutomaticAuthenticate选项false,如下所示

代码语言:javascript
运行
复制
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();

对于我的自定义中间件,我实现了自定义选项,并且我已经这样做了

代码语言:javascript
运行
复制
app.UseApiAuthorizationMiddleware(new ApiAuthenticationOptions
        {
            AuthenticationScheme = "Api",
            AutomaticAuthenticate = false
        });

现在,当我尝试使用

代码语言:javascript
运行
复制
[Authorize(AuthenticationSchemes = "Api")]

在我的控制器中,Visul Studio告诉我找不到AuthenticationSchemes,而我丢失了,并且被汇编或引用了。快速操作工具告诉我要添加

代码语言:javascript
运行
复制
"System.Net.Primitives": "4.0.11-rc2-24027"

但是我最终的版本是4.0.10,它不能编译...我不确定到目前为止我所做的是不是很好,或者这里是否确实存在问题。

我希望这是清楚的。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-06-01 06:22:46

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37494684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档