ASP.NET Core 2 AuthenticationSchemes

Jof*_*rey 4 c# authentication .net-core asp.net-core identityserver4

有几种身份验证方案,但我找不到任何关于它们的文档.他们有什么不同?

options.DefaultScheme
options.DefaultChallengeScheme
options.DefaultForbidScheme
options.DefaultAuthenticateScheme
options.DefaultSignInScheme
options.DefaultSignOutScheme
Run Code Online (Sandbox Code Playgroud)

Yur*_* N. 12

这里开始

  • DefaultScheme:如果指定,则所有其他默认值将回退到此值
  • DefaultAuthenticateScheme:如果指定,AuthenticateAsync()将使用此方案,并且UseAuthentication()添加的AuthenticationMiddleware将使用此方案自动设置context.User.(对应于AutomaticAuthentication)
  • DefaultChallengeScheme如果指定,ChallengeAsync()将使用此方案,[Authorize]与未指定方案的策略也将使用此方案
  • DefaultSignInScheme由SignInAsync()以及所有远程身份验证方案(如Google/Facebook/OIDC/OAuth)使用,通常会将其设置为cookie.
  • DefaultSignOutScheme所使用的SignOutAsync()回落到DefaultSignInScheme
  • ForbidAsync()使用DefaultForbidScheme,回退到DefaultChallengeScheme

因此,您指定将在相应的方法中使用哪种身份验证方案IAuthenticationService