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.
标签:code,asp,authenticationScheme,will,Authentication,schemes,scheme,AddAuthenticati From: https://www.cnblogs.com/qgbo/p/17010078.html