代码改变世界

asp.netcore Authentication, schema

  qgbo  阅读(393)  评论(0编辑  收藏  举报

1.  code  like this will report error:  

builder.Services.AddAuthentication("dd").AddCookie("ddd");
builder.Services.AddAuthorization();

InvalidOperationException: No authenticationScheme was specified, and there was no DefaultChallengeScheme found. The default schemes can be set using either AddAuthentication(string defaultScheme) or AddAuthentication(Action<AuthenticationOptions> configureOptions)

the source code is  AuthenticationService

the exception happen, because the parameter scheme is empty

AuthenticationMiddleware use AuthenticationService

2. the middleware will execute the sentence, which will finally trigger the precede errorcontext.AuthenticateAsync(defaultAuthenticate.Name);

3. Schemes.GetDefaultAuthenticateSchemeAsync(); will return the scheme, so the call is critical

4. if the default scheme is null the method will return null; otherwise, the result will come from a IDictionary<string, AuthenticationScheme>,

the key is authenticationScheme, which come from AuthenticationOptions.schemes;

5.addcookie(schemeName) will call addscheme() which add a schemeName to AuthenticationOptions.schemes. and will add the CookieAuthenticationHandler

6. For each scheme, the important thing is the scheme name and the handler type.








相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2019-12-28 Abp 仓储的讨论
点击右上角即可分享
微信分享提示